ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#214294 | #3851. 多项式乘法 | drdilyor | 80 | 2867ms | 57676kb | C++11 | 1.5kb | 2024-11-17 09:02:03 | 2024-11-17 13:05:38 |
answer
#include<bits/stdc++.h>
#define int long long
using namespace std;
void ts(){cout<<"IAKIOI\n";}
inline int read(){
int n=0,f=1,ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-')f=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9'){
n=n*10+ch-'0';
ch=getchar();
}
return n*f;
}
int n,m,q;
int a[200005],b[200005];
vector<int> fac[200005];
vector<pair<int,int>> que[200005];
int ans[200005];
vector<int> vis[200005];
int tmp[200005];
signed main(){
n=read(),m=read(),q=read();
for(int i=0;i<=n;i++)a[i]=read();
for(int i=0;i<=n;i++)b[i]=read();
for(int i=1;i<=m;i++){
for(int j=i;j<=m;j+=i)fac[j].push_back(i);
}
for(int i=1;i<=q;i++){
int c=read(),d=read();
que[c].push_back({d,i});
}
//i*c+j*d=m
//+=a[i]*b[j].
int cnt=0;
for(int c=1;c<=m;c++){
for(int j=0;j<(int)que[c].size();j++){
vis[que[c][j].first].push_back(que[c][j].second);
}
for(int i=0;i*c<=m;i++){
int p=m-i*c;
if(!p){
for(int j=0;j<(int)que[c].size();j++){
ans[que[c][j].second]+=a[i]*b[0];
}
continue;
}
for(auto d:fac[p]){
cnt++;
if(!vis[d].empty())tmp[d]+=a[i]*b[p/d];/*
for(auto qid:vis[d]){
ans[qid]+=a[i]*b[p/d];
}*/
}
}
for(int j=0;j<(int)que[c].size();j++){
ans[que[c][j].second]+=tmp[que[c][j].first];
vis[que[c][j].first].clear();
}
for(int j=0;j<(int)que[c].size();j++){
tmp[que[c][j].first]=0;
}
}
//cout<<cnt<<"\n";
for(int i=1;i<=q;i++)printf("%lld\n",ans[i]);
return 0;
}
//look at my code
//my code is amazing
Details
小提示:点击横条可展开更详细的信息
Test #1:
score: 10
Accepted
time: 0ms
memory: 15448kb
input:
999 996 1000 181 806 745 589 721 351 654 278 172 787 785 328 876 63 436 237 822 649 932 55 332 99 13...
output:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
result:
ok 1000 tokens
Test #2:
score: 10
Accepted
time: 10ms
memory: 15440kb
input:
999 999 998 629 817 295 274 803 741 680 334 314 300 960 880 958 153 650 621 830 812 753 954 925 128 ...
output:
0 0 0 0 0 573534 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...
result:
ok 998 tokens
Test #3:
score: 10
Accepted
time: 3ms
memory: 15444kb
input:
999 1000 996 405 332 85 45 221 452 98 110 660 639 88 132 660 917 688 160 46 739 398 344 813 746 593 ...
output:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87480 0 0 0 0 0 0 0 0 0 0 0 0 ...
result:
ok 996 tokens
Test #4:
score: 10
Accepted
time: 6ms
memory: 15440kb
input:
1000 998 998 166 218 178 246 965 67 723 748 446 558 450 939 19 72 123 256 942 873 269 573 991 463 68...
output:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
result:
ok 998 tokens
Test #5:
score: 10
Accepted
time: 557ms
memory: 57672kb
input:
199997 199999 199998 1302 180172 139335 170014 31751 7467 183386 71639 67797 140829 155107 61564 984...
output:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
result:
ok 199998 tokens
Test #6:
score: 10
Accepted
time: 615ms
memory: 57676kb
input:
199997 199997 200000 84501 46291 64694 156236 116548 147672 10286 54151 157755 190434 70365 145475 1...
output:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
result:
ok 200000 tokens
Test #7:
score: 10
Accepted
time: 867ms
memory: 55564kb
input:
200000 199996 199997 10072 125769 117200 152038 170661 109407 73931 21884 144280 181053 47148 44210 ...
output:
334685832754280 2006121597481107 2006121597481107 334685832754280 1003645394194469 1003985461234743 ...
result:
ok 199997 tokens
Test #8:
score: 0
Time Limit Exceeded
input:
200000 200000 200000 94005 71739 112951 57403 31797 74173 113981 44673 166545 101677 135207 32182 50...
output:
result:
Test #9:
score: 0
Time Limit Exceeded
input:
199997 199998 199997 114782 89426 5154 72561 99785 66889 106549 2708 46310 108849 58268 188339 12902...
output:
result:
Test #10:
score: 10
Accepted
time: 809ms
memory: 55660kb
input:
199998 199997 199997 194270 184004 139383 148257 117737 8328 66533 187509 47247 118806 176038 42976 ...
output:
1999294464955238 1999294464955238 0 329637326523124 1000882324376412 0 666546849218999 6665468492189...
result:
ok 199997 tokens