QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#874880 | #9689. 伪伪随机 | lgvc | 100 ✓ | 380ms | 14460kb | C++23 | 2.5kb | 2025-01-28 18:57:48 | 2025-01-28 18:57:50 |
Judging History
answer
#include "prg.h"
#include <bits/stdc++.h>
int hd[1009],to[3009],nxt[3009],val[3009],kk;
void l(int u,int v,int w) {
to[++kk]=v;nxt[kk]=hd[u];val[kk]=w;hd[u]=kk;
}
std::array<std::vector<int>, 3000> xt;
int K;
bool cmp(int a,int b) {
return std::max(xt[a][K-1],xt[a][K-2])<std::max(xt[b][K-1],xt[b][K-2]);
}
int vii[2][2000009];
int solve(int n, int m, int k, std::vector<int> op, std::array<std::vector<int>, 3000> x,
int c, std::array<std::array<int, 3000>, 25> s) {
K=k;xt=x;
int as=0;
for(int i=1;i<=25;i++) {
for(int j=1;j<=3000;j++) {
if(s[i-1][j-1]==1) as++;
}
}
if(op[k-2]!=2) {
if(as>=35000&&as<=40000) return 1;
return 2;
}
if(op[k-3]!=2) {
int vv=0;
std::vector<int> t[1009];
for(int j=1;j<=25;j++) {
int as=0;
for(int i=0;i<=1000;i++) t[i]=t[1001];
for(int i=1;i<=3000;i++) {
t[x[i-1][k-1]].push_back(i);
if(s[j-1][i-1]==1) as++;
}
for(int i=0;i<=1000;i++) {
int as=0;
for(int jj=0;jj<t[i].size();jj++) {
as+=s[j-1][t[i][jj]-1];
}
vv+=std::min(as,(signed)t[i].size()-as);
}
}
if(vv<=20000||vv>=55000) return 2;
return 1;
}
int p[3009],c1=0,c2=0,vi[1009]={0},v2[1009]={0},tt=0,c3=0,c4=0,c5=0,c6=0;
std::mt19937 rng(114);
for(int i=0;i<25;i++) {
for(int j=0;j<1000;j++) hd[j]=0;
kk=0;
for(int j=0;j<3000;j++) {
int p1=x[j][k-1],p2=x[j][k-2];
if(p1>p2) std::swap(p1,p2);
int ss=1009*p1+p2;
c3+=vii[s[i][j]][ss];
c4+=vii[1-s[i][j]][ss];
vii[s[i][j]][ss]++;
l(p1,p2,(s[i][j]^op[0]));
}
for(int j=0;j<3000;j++) {
int p1=x[j][k-1],p2=x[j][k-2];
if(p1>p2) std::swap(p1,p2);
int ss=1009*p1+p2;
vii[s[i][j]][ss]=0;
}
for(int i=0;i<1000;i++) {
tt++;
for(int j=hd[i];j;j=nxt[j]) {
vi[to[j]]=tt;
v2[to[j]]=val[j];
}
for(int j=hd[i];j;j=nxt[j]) {
for(int k=hd[to[j]];k;k=nxt[k]) {
if(vi[to[k]]==tt) {
if((val[j]^val[k]^v2[to[k]])==0) c1++;
else c2++;
}
for(int l=hd[to[k]];l;l=nxt[l]) {
if(vi[to[l]]==tt) {
if((val[j]^val[k]^val[l]^v2[to[l]])==0) c5++;
else c6++;
}
}
}
}
}
}
long double g1=1;
while(c1||c2) {
if(((c1==0)||(g1>1))&&c2) {
c2--;
g1=g1*7/8;
} else {
c1--;
g1=g1*9/8;
}
}
while(c3||c4) {
if(((c3==0)||(g1>1))&&c4) {
c4--;
g1=g1*3/4;
} else {
c3--;
g1=g1*5/4;
}
}
while(c5||c6) {
if(((c5==0)||(g1>1))&&c6) {
c6--;
g1=g1*15/16;
} else {
c5--;
g1=g1*17/16;
}
}
if(g1>=1) return 2;
return 1;
}
詳細信息
Subtask #1:
score: 5
Accepted
Test #1:
score: 5
Accepted
time: 36ms
memory: 4736kb
input:
15478345200793503450 1237460 18364524 21312414
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #2:
score: 5
Accepted
time: 36ms
memory: 4736kb
input:
8777328773999050296 1237460 18364524 21312414
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #3:
score: 5
Accepted
time: 37ms
memory: 4736kb
input:
8306860370301473558 1237460 18364524 21312414
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #4:
score: 5
Accepted
time: 36ms
memory: 4736kb
input:
7355535262167792602 1237460 18364524 21312414
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #5:
score: 5
Accepted
time: 38ms
memory: 4736kb
input:
5901033176077457090 1237460 18364524 21312413
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #6:
score: 5
Accepted
time: 36ms
memory: 4736kb
input:
6725216784977925179 1237460 18364524 21312414
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #7:
score: 5
Accepted
time: 35ms
memory: 4736kb
input:
15228205213107479514 1237460 18364524 21312414
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #8:
score: 5
Accepted
time: 34ms
memory: 4736kb
input:
10794704323727532585 1237460 18364524 21312413
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #9:
score: 5
Accepted
time: 36ms
memory: 4736kb
input:
1531863096801291235 1237460 18364524 21312414
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #10:
score: 5
Accepted
time: 35ms
memory: 4736kb
input:
12583269177593428071 1237460 18364524 21312414
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #11:
score: 5
Accepted
time: 35ms
memory: 4736kb
input:
17884260014537450829 1237460 18364524 21312414
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #12:
score: 5
Accepted
time: 37ms
memory: 4736kb
input:
5598933293992250528 1237460 18364524 21312414
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #13:
score: 5
Accepted
time: 36ms
memory: 4736kb
input:
15029988260575536839 1237460 18364524 21312414
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #14:
score: 5
Accepted
time: 36ms
memory: 4736kb
input:
18435900855108017468 1237460 18364524 21312413
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #15:
score: 5
Accepted
time: 36ms
memory: 4736kb
input:
4740054765891404200 1237460 18364524 21312414
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #16:
score: 5
Accepted
time: 36ms
memory: 4736kb
input:
14854659461851577578 1237460 18364524 21312413
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #17:
score: 5
Accepted
time: 36ms
memory: 4736kb
input:
11860421814773748892 1237460 18364524 21312414
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #18:
score: 5
Accepted
time: 36ms
memory: 4736kb
input:
2618043996784533224 1237460 18364524 21312413
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #19:
score: 5
Accepted
time: 35ms
memory: 4736kb
input:
4729099511370153840 1237460 18364524 21312414
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #20:
score: 5
Accepted
time: 36ms
memory: 4736kb
input:
6142100148239098773 1237460 18364524 21312413
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Subtask #2:
score: 15
Accepted
Test #21:
score: 15
Accepted
time: 84ms
memory: 4608kb
input:
15644456504653888385 1237461 18364524 21312413 32673238
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #22:
score: 15
Accepted
time: 82ms
memory: 4736kb
input:
17525409403797767860 1237461 18364524 21312413 32673238
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #23:
score: 15
Accepted
time: 85ms
memory: 4736kb
input:
16953002163903257386 1237461 18364524 21312414 32673238
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #24:
score: 15
Accepted
time: 82ms
memory: 4736kb
input:
788278265436010907 1237461 18364524 21312413 32673238
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #25:
score: 15
Accepted
time: 87ms
memory: 4736kb
input:
15540481379750277983 1237461 18364524 21312413 32673238
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #26:
score: 15
Accepted
time: 83ms
memory: 4736kb
input:
9015247799051510708 1237461 18364524 21312414 32673238
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #27:
score: 15
Accepted
time: 84ms
memory: 4736kb
input:
14718463813137865720 1237461 18364524 21312414 32673238
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #28:
score: 15
Accepted
time: 43ms
memory: 4736kb
input:
9626039215908894536 1237461 18364524 21312415 32673239
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #29:
score: 15
Accepted
time: 40ms
memory: 4736kb
input:
15367994199069034681 1237461 18364524 21312414 32673236
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #30:
score: 15
Accepted
time: 83ms
memory: 4736kb
input:
9815994743565449906 1237461 18364524 21312414 32673238
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #31:
score: 15
Accepted
time: 85ms
memory: 4480kb
input:
5076972403022378194 1237461 18364524 21312414 32673238
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #32:
score: 15
Accepted
time: 86ms
memory: 4736kb
input:
13523311479884920883 1237461 18364524 21312414 32673238
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #33:
score: 15
Accepted
time: 86ms
memory: 4480kb
input:
15452059373617333584 1237461 18364524 21312414 32673238
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #34:
score: 15
Accepted
time: 83ms
memory: 4736kb
input:
8631381148034308695 1237461 18364524 21312414 32673238
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #35:
score: 15
Accepted
time: 85ms
memory: 4736kb
input:
5422315179829169150 1237461 18364524 21312414 32673238
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #36:
score: 15
Accepted
time: 88ms
memory: 6776kb
input:
4361249126136426961 1237461 18364524 21312413 32673238
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #37:
score: 15
Accepted
time: 86ms
memory: 4736kb
input:
6976800422460576686 1237461 18364524 21312414 32673238
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #38:
score: 15
Accepted
time: 84ms
memory: 4736kb
input:
8552184079474065172 1237461 18364524 21312414 32673238
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #39:
score: 15
Accepted
time: 84ms
memory: 4736kb
input:
1598183902825082255 1237461 18364524 21312414 32673238
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #40:
score: 15
Accepted
time: 90ms
memory: 4736kb
input:
3317147437384062467 1237461 18364524 21312414 32673238
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Subtask #3:
score: 30
Accepted
Test #41:
score: 30
Accepted
time: 78ms
memory: 12416kb
input:
18096446825184275106 1237458 18364525
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #42:
score: 30
Accepted
time: 66ms
memory: 12160kb
input:
14902425508262229602 1237458 18364525
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #43:
score: 30
Accepted
time: 85ms
memory: 12288kb
input:
15139748546799860644 1237458 18364525
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #44:
score: 30
Accepted
time: 86ms
memory: 12416kb
input:
9307674455823252809 1237458 18364525
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #45:
score: 30
Accepted
time: 88ms
memory: 14328kb
input:
3661511870465233329 1237458 18364525
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #46:
score: 30
Accepted
time: 76ms
memory: 12288kb
input:
9635149641212141231 1237458 18364525
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #47:
score: 30
Accepted
time: 81ms
memory: 12544kb
input:
8623126583531512280 1237458 18364525
output:
126534126
result:
ok Perfect. Correct in 99 tests.
Test #48:
score: 30
Accepted
time: 87ms
memory: 12416kb
input:
17542991876646715766 1237458 18364525
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #49:
score: 30
Accepted
time: 81ms
memory: 12544kb
input:
11509469256784773735 1237458 18364525
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #50:
score: 30
Accepted
time: 81ms
memory: 14460kb
input:
15187255126140633228 1237458 18364525
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #51:
score: 30
Accepted
time: 66ms
memory: 12288kb
input:
5596351031354288494 1237458 18364525
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #52:
score: 30
Accepted
time: 73ms
memory: 12416kb
input:
1956884572310497827 1237458 18364525
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #53:
score: 30
Accepted
time: 91ms
memory: 12544kb
input:
1848311009363078904 1237458 18364525
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #54:
score: 30
Accepted
time: 77ms
memory: 12544kb
input:
7958126186516090968 1237458 18364525
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #55:
score: 30
Accepted
time: 84ms
memory: 12416kb
input:
14895520484903877251 1237458 18364525
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #56:
score: 30
Accepted
time: 107ms
memory: 14324kb
input:
252125976313631579 1237458 18364525
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #57:
score: 30
Accepted
time: 106ms
memory: 12544kb
input:
8822075999373790379 1237458 18364525
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #58:
score: 30
Accepted
time: 77ms
memory: 12416kb
input:
12301960690081072082 1237458 18364525
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #59:
score: 30
Accepted
time: 81ms
memory: 12416kb
input:
6580770166803301984 1237458 18364525
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #60:
score: 30
Accepted
time: 88ms
memory: 12544kb
input:
11293302044901951261 1237458 18364525
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Subtask #4:
score: 50
Accepted
Test #61:
score: 50
Accepted
time: 376ms
memory: 12672kb
input:
6934415118162240981 1237458 18364524 21312414 32673238 236176120
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #62:
score: 50
Accepted
time: 373ms
memory: 12544kb
input:
3842633665807973417 1237458 18364524 21312413 32673238 236176120
output:
126534126
result:
ok Perfect. Correct in 99 tests.
Test #63:
score: 50
Accepted
time: 374ms
memory: 12544kb
input:
7239866286946328663 1237458 18364524 21312414 32673238 236176120
output:
126534126
result:
ok Perfect. Correct in 99 tests.
Test #64:
score: 50
Accepted
time: 380ms
memory: 12544kb
input:
7703816040948127846 1237458 18364524 21312414 32673238 236176120
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #65:
score: 50
Accepted
time: 373ms
memory: 12544kb
input:
3603384166177697472 1237458 18364524 21312413 32673238 236176120
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #66:
score: 50
Accepted
time: 371ms
memory: 12416kb
input:
3656923047342207392 1237458 18364524 21312414 32673238 236176120
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #67:
score: 50
Accepted
time: 372ms
memory: 12544kb
input:
527459705711820317 1237458 18364524 21312413 32673238 236176120
output:
126534126
result:
ok Perfect. Correct in 99 tests.
Test #68:
score: 50
Accepted
time: 372ms
memory: 12672kb
input:
9663120536403908130 1237458 18364524 21312413 32673238 236176120
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #69:
score: 50
Accepted
time: 88ms
memory: 4736kb
input:
9439840407846051020 1237458 18364524 21312414 32673236 236176120
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #70:
score: 50
Accepted
time: 372ms
memory: 12544kb
input:
13809961864883455849 1237458 18364524 21312413 32673238 236176120
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #71:
score: 50
Accepted
time: 376ms
memory: 12416kb
input:
15124215729371202231 1237458 18364524 21312414 32673238 236176120
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #72:
score: 50
Accepted
time: 377ms
memory: 12672kb
input:
7117551168813448970 1237458 18364524 21312414 32673238 236176120
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #73:
score: 50
Accepted
time: 375ms
memory: 12544kb
input:
5561290863673255532 1237458 18364524 21312414 32673238 236176120
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #74:
score: 50
Accepted
time: 373ms
memory: 12416kb
input:
13802789789482912767 1237458 18364524 21312414 32673238 236176120
output:
126534126
result:
ok Perfect. Correct in 99 tests.
Test #75:
score: 50
Accepted
time: 373ms
memory: 12544kb
input:
9913943612955590097 1237458 18364524 21312414 32673238 236176120
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #76:
score: 50
Accepted
time: 374ms
memory: 12672kb
input:
9308648462630523956 1237458 18364524 21312414 32673238 236176120
output:
126534126
result:
ok Perfect. Correct in 99 tests.
Test #77:
score: 50
Accepted
time: 374ms
memory: 12544kb
input:
7898242699188216716 1237458 18364524 21312414 32673238 236176120
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #78:
score: 50
Accepted
time: 370ms
memory: 12544kb
input:
17772607140853820910 1237458 18364524 21312414 32673238 236176120
output:
126534127
result:
ok Perfect. Correct in 100 tests.
Test #79:
score: 50
Accepted
time: 376ms
memory: 12544kb
input:
3917596392610036445 1237458 18364524 21312413 32673238 236176120
output:
126534126
result:
ok Perfect. Correct in 99 tests.
Test #80:
score: 50
Accepted
time: 374ms
memory: 12544kb
input:
7049562837957796004 1237458 18364524 21312414 32673238 236176120
output:
126534127
result:
ok Perfect. Correct in 100 tests.