QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#85749 | #1060. 快速查询 | lmeowdn | 100 ✓ | 611ms | 124820kb | C++14 | 2.5kb | 2023-03-08 11:12:18 | 2023-03-08 11:12:20 |
Judging History
answer
#include<bits/stdc++.h>
#define int long long
#define rep(i,a,b) for(int i=(a);i<=(b);i++)
#define per(i,a,b) for(int i=(a);i>=(b);i--)
#define fi first
#define se second
#define eb emplace_back
#define popc __builtin_popcount
#define sgn(x) ((x)&1?-1:1)
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
typedef vector<int> vi;
typedef vector<pii> vp;
typedef unsigned long long ull;
typedef long double ld;
int read() {
int x=0,w=1; char c=getchar();
while(!isdigit(c)) {if(c=='-') w=-1; c=getchar();}
while(isdigit(c)) {x=x*10+c-'0'; c=getchar();}
return x*w;
}
const int N=1e5+9,mod=1e7+19;
int n,m,op[N],X[N],V[N],A[N],B[N],tmp[N],cnt,T,a[N],t[N],x,y,z,w,sum,tsum;
signed fac[mod+5],ifac[mod+5],inv[mod+5];
int ksm(int x,int y,int r=1) {
for(;y;y>>=1,x=x*x%mod) if(y%2==1) r=r*x%mod;
return r;
}
void pre() {
fac[0]=1, ifac[0]=1, inv[0]=1;
rep(i,1,mod-1) fac[i]=1ll*fac[i-1]*i%mod;
ifac[mod-1]=ksm(fac[mod-1],mod-2);
per(i,mod-2,1) ifac[i]=1ll*ifac[i+1]*(i+1)%mod;
rep(i,1,mod-1) inv[i]=1ll*ifac[i]*fac[i-1]%mod;
}
int getval(int i) {
if(t[i]>w) return (x*a[i]+y)%mod;
else return (x*z+y)%mod;
}
void mdf(int i,int v,int d) {
sum-=getval(i), t[i]=d, a[i]=(v-y+mod)*inv[x]%mod, sum+=getval(i);
sum=(sum%mod+mod)%mod;
}
void add(int v) {y=(y+v)%mod, sum=(sum+v*n)%mod;}
void mul(int v) {x=x*v%mod, y=y*v%mod, sum=(sum*v)%mod;}
void cov(int v,int d) {w=d, x=1, y=0, z=v, sum=n*v%mod;}
signed main() {
pre();
n=read(), m=read();
rep(i,1,m) {
op[i]=read();
if(op[i]==1) X[i]=read(), V[i]=read()%mod, tmp[++cnt]=X[i];
else if(op[i]==2) V[i]=read()%mod;
else if(op[i]==3) {V[i]=read()%mod; if(!V[i]) op[i]=4;}
else if(op[i]==4) V[i]=read()%mod;
else if(op[i]==5) X[i]=read()%mod, tmp[++cnt]=X[i];
}
rep(i,1,m) if(V[i]<0) V[i]+=mod;
T=read();
rep(i,1,T) A[i]=read(), B[i]=read();
sort(tmp+1,tmp+cnt+1); cnt=unique(tmp+1,tmp+cnt+1)-tmp-1;
rep(i,1,m) if(X[i]) X[i]=lower_bound(tmp+1,tmp+cnt+1,X[i])-tmp;
x=1, y=0, z=0;
rep(i,1,T) rep(j,1,m) {
int id=(A[i]+j*B[i])%m+1, d=(i-1)*m+j;
if(op[id]==1) mdf(X[id],V[id],d);
else if(op[id]==2) add(V[id]);
else if(op[id]==3) mul(V[id]);
else if(op[id]==4) cov(V[id],d);
else if(op[id]==5) tsum=(tsum+getval(X[id]))%mod;
else if(op[id]==6) tsum=(tsum+sum)%mod;
}
printf("%lld\n",tsum);
return 0;
}
詳細信息
Subtask #1:
score: 50
Accepted
Test #1:
score: 50
Accepted
time: 125ms
memory: 124624kb
input:
452026 95958 1 285703 217433997 1 11660 355946119 1 154677 958212086 1 45777 559001183 1 149425 708949937 1 199039 -627813211 1 421465 878181683 1 18566 -840518154 1 268546 -956473636 1 6627 -168874651 1 165349 796846652 1 389787 -241387034 2 856579071 2 776291767 1 361873 220652502 1 34945 3586417 ...
output:
7032812
result:
ok single line: '7032812'
Test #2:
score: 0
Accepted
time: 157ms
memory: 124520kb
input:
483072 93455 3 127269075 1 302644 -819206705 1 324283 176567456 1 362914 -123696183 1 269012 35941289 1 320675 371602507 2 621029853 1 261791 42607160 1 134081 -311548238 1 39566 -639742963 1 148195 248115767 2 698644799 1 14757 -854683791 3 568083880 4 -307679829 1 81614 58671469 4 -123658687 1 263...
output:
4330039
result:
ok single line: '4330039'
Test #3:
score: 0
Accepted
time: 178ms
memory: 124732kb
input:
451320 98796 1 273886 584382657 1 72767 882120348 2 -500581825 1 371431 -890794733 1 388789 575894740 1 416938 55821666 4 -139712863 1 391097 644330384 2 -469419669 1 448782 107966848 1 235509 -986289 3 -858374275 1 123585 -837984190 2 929586510 6 1 401033 363310883 1 331019 468451209 1 96904 -12761...
output:
2444116
result:
ok single line: '2444116'
Test #4:
score: 0
Accepted
time: 167ms
memory: 124656kb
input:
482366 98045 1 24349 377283548 1 453704 -854792539 6 1 237007 242624318 1 88252 393839755 6 1 228412 125093668 1 181999 240899085 4 -558162897 1 206599 674854997 1 277268 -501664106 4 -725152265 1 108652 -772913438 1 314782 64055034 1 188046 -600981194 1 351594 751311220 1 27428 454875485 1 435918 -...
output:
1089463
result:
ok single line: '1089463'
Test #5:
score: 0
Accepted
time: 153ms
memory: 124436kb
input:
482013 91226 4 725259386 1 43639 194616618 4 -37234157 1 133414 -574368751 1 86430 -490776890 1 41779 -149936319 1 155135 -789189968 1 23506 90866624 1 173870 866781461 1 357433 -571999918 1 87765 -307392425 5 175104 1 230280 -534700699 1 246779 348430587 4 614286356 1 455152 -217613300 1 91751 6252...
output:
2809378
result:
ok single line: '2809378'
Subtask #2:
score: 50
Accepted
Dependency #1:
100%
Accepted
Test #6:
score: 50
Accepted
time: 611ms
memory: 124736kb
input:
932633695 99894 1 817597654 58755520 1 830426120 -575569935 1 219698976 11255802 6 1 879216899 -243126660 4 778062635 1 614037672 -8450346 1 867388106 702693200 1 383979273 190017535 6 1 31373926 826414468 1 498056404 219646389 4 -534017693 1 364133037 733160350 2 -117264984 2 768406768 6 1 16132616...
output:
6837626
result:
ok single line: '6837626'
Test #7:
score: 0
Accepted
time: 573ms
memory: 124612kb
input:
957779956 94827 3 601355317 1 45079147 38155506 1 231631228 -362057428 6 2 -283829750 6 1 577666590 -691353274 1 205440460 -667647306 1 949397227 -3792339 1 653527564 828820694 1 491521243 915189166 3 -230329676 1 268381062 597296274 4 12779460 1 599484650 351024349 1 896651645 722621340 1 134125930...
output:
4070758
result:
ok single line: '4070758'
Test #8:
score: 0
Accepted
time: 526ms
memory: 124492kb
input:
987958964 92325 2 -468910483 6 1 510389535 900881564 4 -943881278 1 120113253 5273740 1 401108682 -866524220 1 108908755 -622968084 1 690649880 -664653909 6 1 406048569 930927819 5 688114677 4 -245255661 5 105555975 1 353750321 -466163361 5 927730102 6 5 534739635 5 444272952 1 66866280 470469397 1 ...
output:
7152858
result:
ok single line: '7152858'
Test #9:
score: 0
Accepted
time: 579ms
memory: 124820kb
input:
913105224 97665 1 588154473 218605071 1 628019257 213691408 6 2 678329170 2 -538647151 1 545477538 -779883649 1 799854288 -111616832 1 26866293 32675018 2 -340866521 1 124213553 384460066 1 775180734 414347048 2 123715231 1 628324808 -102971256 1 214563428 8068862 1 402502072 -706040775 1 659051837 ...
output:
9405271
result:
ok single line: '9405271'
Test #10:
score: 0
Accepted
time: 515ms
memory: 124640kb
input:
943284232 95163 4 -852531875 1 201974707 -653053877 1 823113651 196429318 3 337869540 1 647936647 114651757 1 593910554 120551408 1 315182996 -77867126 1 812178266 287556917 1 697126470 302117687 1 156012320 687964917 1 670615234 784564862 1 361379363 510732694 3 676262960 1 770979443 -642438266 1 1...
output:
1705627
result:
ok single line: '1705627'