QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#934471#9689. 伪伪随机csyakuoi87.5 420ms43620kbC++142.8kb2025-03-14 20:00:462025-03-14 20:00:47

Judging History

This is the latest submission verdict.

  • [2025-03-14 20:00:47]
  • Judged
  • Verdict: 87.5
  • Time: 420ms
  • Memory: 43620kb
  • [2025-03-14 20:00:46]
  • Submitted

answer

#include"prg.h"
#include<vector>
#include<cmath>
#include<ctime>
#include<cstdlib>
using namespace std;
double solve(int n,int m,double p)
{
	double a=1,b=1,c=1,d=1;
	for(int i=0;i<m;i++){
		a*=p; c*=1-p;
	}
	for(int i=0;i<n-m;i++){
		b*=1-p; d*=p;
	}
	return log2(a*b+c*d);
}

vector<int> to[1000],id[1000];
vector<int> ed[1000][1000];
double D2=2.0,D3=1.5,D4=1.0;

int solve(int n,int m,int k,vector<int> op,array<vector<int>,3000> arr,int T,array<array<int,3000>,25> res)
{
	if(op[k-2]!=2){
		int cnt=0;
		for(int i=0;i<T;i++)
			for(int j=0;j<m;j++)
				cnt+=res[i][j];
		if(cnt<35000||cnt>40000)
			return 2;
		return 1;
	}
	for(int i=0;i<n;i++)
		id[i].clear();
	if(k<4||op[1]!=2){
		double p1=0.5,p2=0.75;
		if(k==4&&op[0]!=2&&op[1]!=2){
			if(op[1]==op[2]) p2=0.875;
			else p2=0.625;
		}
		double E1=0.0,E2=0.0;
		for(int i=0;i<m;i++)
			id[arr[i][k-1]].push_back(i);
		for(int i=0;i<n;i++)
			for(int t=0;t<T;t++){
				int p=id[i].size(),cnt=0;
				for(int j=0;j<p;j++)
					cnt+=res[t][id[i][j]];
				E1+=solve(p,cnt,p1);
				E2+=solve(p,cnt,p2);
			}
		if(E2>E1) return 2;
		return 1;
	}
	double E1=0.0,E2=0.0;
	for(int i=0;i<n;i++){
		to[i].clear();
		for(int j=i;j<n;j++)
			ed[i][j].clear();
	}
	for(int i=0;i<m;i++){
		int a=arr[i][2],b=arr[i][3];
		to[a].push_back(b);
		to[b].push_back(a);
		id[a].push_back(i);
		id[b].push_back(i);
		if(a>b) swap(a,b);
		ed[a][b].push_back(i);
	}
	for(int i=0;i<n;i++)
		for(int j=i+1;j<n;j++)
			if(ed[i][j].size()>=2){
				int c0=ed[i][j][0],c1=ed[i][j][1];
				for(int t=0;t<T;t++){
					E2-=D2;
					if(res[t][c0]==res[t][c1]) E1+=D2*log2(0.625);
					else E1+=D2*log2(0.375);
				}
			}
	double U=log2(0.5625),V=log2(0.4375);
	U*=D3; V*=D3;
	for(int i=0;i<n;i++)
		for(int j=0;j<to[i].size();j++)
			for(int k=j+1;k<to[i].size();k++){
				int x=to[i][j],y=to[i][k];
				if(x>y) swap(x,y);
				if(ed[x][y].size()>=1){
					int a=ed[x][y][0];
					int b=id[i][j],c=id[i][k];
					for(int t=0;t<T;t++){
						int v=res[t][a]^res[t][b]^res[t][c];
						E2-=D3;
						if(op[0]^v) E1+=V;
						else E1+=U;
					}
				}
			}
	U=log2(15.0/32); V=log2(17.0/32);
	U*=D4; V*=D4;
	for(int i=0;i<n;i++)
		for(int j=i;j<n;j++)
			ed[i][j].clear();
	for(int i=0;i<n;i++)
		for(int j=0;j<to[i].size();j++)
			for(int k=j+1;k<to[i].size();k++){
				int x=to[i][j],y=to[i][k];
				if(x>y) swap(x,y);
				ed[x][y].push_back(id[i][j]*m+id[i][k]);
			}
	for(int i=0;i<n;i++)
		for(int j=i+1;j<n;j++)
			if(ed[i][j].size()>=2){
				int a=ed[i][j][0]/m,b=ed[i][j][0]%m;
				int c=ed[i][j][1]/m,d=ed[i][j][1]%m;
				for(int t=0;t<T;t++){
					int v=res[t][a]^res[t][b]^res[t][c]^res[t][d];
					E2-=D4;
					if(v==1) E1+=U;
					else E1+=V;
				}
			}
	if(E1>E2) return 2;
	return 1;
}

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 5
Accepted

Test #1:

score: 5
Accepted
time: 42ms
memory: 28044kb

input:

15478345200793503450
1237460 18364524
21312414

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #2:

score: 5
Accepted
time: 39ms
memory: 28024kb

input:

8777328773999050296
1237460 18364524
21312414

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #3:

score: 5
Accepted
time: 40ms
memory: 28024kb

input:

8306860370301473558
1237460 18364524
21312414

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #4:

score: 5
Accepted
time: 41ms
memory: 27936kb

input:

7355535262167792602
1237460 18364524
21312414

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #5:

score: 5
Accepted
time: 41ms
memory: 28052kb

input:

5901033176077457090
1237460 18364524
21312413

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #6:

score: 5
Accepted
time: 38ms
memory: 27980kb

input:

6725216784977925179
1237460 18364524
21312414

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #7:

score: 5
Accepted
time: 41ms
memory: 27940kb

input:

15228205213107479514
1237460 18364524
21312414

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #8:

score: 5
Accepted
time: 39ms
memory: 27936kb

input:

10794704323727532585
1237460 18364524
21312413

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #9:

score: 5
Accepted
time: 40ms
memory: 27900kb

input:

1531863096801291235
1237460 18364524
21312414

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #10:

score: 5
Accepted
time: 43ms
memory: 28044kb

input:

12583269177593428071
1237460 18364524
21312414

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #11:

score: 5
Accepted
time: 42ms
memory: 27940kb

input:

17884260014537450829
1237460 18364524
21312414

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #12:

score: 5
Accepted
time: 40ms
memory: 27948kb

input:

5598933293992250528
1237460 18364524
21312414

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #13:

score: 5
Accepted
time: 39ms
memory: 27800kb

input:

15029988260575536839
1237460 18364524
21312414

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #14:

score: 5
Accepted
time: 43ms
memory: 27932kb

input:

18435900855108017468
1237460 18364524
21312413

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #15:

score: 5
Accepted
time: 39ms
memory: 28040kb

input:

4740054765891404200
1237460 18364524
21312414

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #16:

score: 5
Accepted
time: 40ms
memory: 27928kb

input:

14854659461851577578
1237460 18364524
21312413

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #17:

score: 5
Accepted
time: 40ms
memory: 27904kb

input:

11860421814773748892
1237460 18364524
21312414

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #18:

score: 5
Accepted
time: 42ms
memory: 27904kb

input:

2618043996784533224
1237460 18364524
21312413

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #19:

score: 5
Accepted
time: 40ms
memory: 27944kb

input:

4729099511370153840
1237460 18364524
21312414

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #20:

score: 5
Accepted
time: 40ms
memory: 27904kb

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: 102ms
memory: 28292kb

input:

15644456504653888385
1237461 18364524
21312413 32673238

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #22:

score: 15
Accepted
time: 102ms
memory: 28380kb

input:

17525409403797767860
1237461 18364524
21312413 32673238

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #23:

score: 15
Accepted
time: 100ms
memory: 28332kb

input:

16953002163903257386
1237461 18364524
21312414 32673238

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #24:

score: 15
Accepted
time: 102ms
memory: 28168kb

input:

788278265436010907
1237461 18364524
21312413 32673238

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #25:

score: 15
Accepted
time: 101ms
memory: 28344kb

input:

15540481379750277983
1237461 18364524
21312413 32673238

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #26:

score: 15
Accepted
time: 103ms
memory: 28332kb

input:

9015247799051510708
1237461 18364524
21312414 32673238

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #27:

score: 15
Accepted
time: 101ms
memory: 28276kb

input:

14718463813137865720
1237461 18364524
21312414 32673238

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #28:

score: 15
Accepted
time: 46ms
memory: 27912kb

input:

9626039215908894536
1237461 18364524
21312415 32673239

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #29:

score: 15
Accepted
time: 45ms
memory: 27944kb

input:

15367994199069034681
1237461 18364524
21312414 32673236

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #30:

score: 15
Accepted
time: 100ms
memory: 28168kb

input:

9815994743565449906
1237461 18364524
21312414 32673238

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #31:

score: 15
Accepted
time: 101ms
memory: 28280kb

input:

5076972403022378194
1237461 18364524
21312414 32673238

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #32:

score: 15
Accepted
time: 106ms
memory: 28400kb

input:

13523311479884920883
1237461 18364524
21312414 32673238

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #33:

score: 15
Accepted
time: 101ms
memory: 28336kb

input:

15452059373617333584
1237461 18364524
21312414 32673238

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #34:

score: 15
Accepted
time: 103ms
memory: 28216kb

input:

8631381148034308695
1237461 18364524
21312414 32673238

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #35:

score: 15
Accepted
time: 101ms
memory: 28372kb

input:

5422315179829169150
1237461 18364524
21312414 32673238

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #36:

score: 15
Accepted
time: 101ms
memory: 28320kb

input:

4361249126136426961
1237461 18364524
21312413 32673238

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #37:

score: 15
Accepted
time: 101ms
memory: 28312kb

input:

6976800422460576686
1237461 18364524
21312414 32673238

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #38:

score: 15
Accepted
time: 101ms
memory: 28388kb

input:

8552184079474065172
1237461 18364524
21312414 32673238

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #39:

score: 15
Accepted
time: 101ms
memory: 28264kb

input:

1598183902825082255
1237461 18364524
21312414 32673238

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #40:

score: 15
Accepted
time: 101ms
memory: 28160kb

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: 91ms
memory: 32744kb

input:

18096446825184275106
1237458 18364525

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #42:

score: 30
Accepted
time: 74ms
memory: 30076kb

input:

14902425508262229602
1237458 18364525

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #43:

score: 30
Accepted
time: 99ms
memory: 33176kb

input:

15139748546799860644
1237458 18364525

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #44:

score: 30
Accepted
time: 104ms
memory: 33708kb

input:

9307674455823252809
1237458 18364525

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #45:

score: 30
Accepted
time: 104ms
memory: 33324kb

input:

3661511870465233329
1237458 18364525

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #46:

score: 30
Accepted
time: 94ms
memory: 32772kb

input:

9635149641212141231
1237458 18364525

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #47:

score: 30
Accepted
time: 97ms
memory: 32756kb

input:

8623126583531512280
1237458 18364525

output:

126534126

result:

ok Perfect. Correct in 99 tests.

Test #48:

score: 30
Accepted
time: 95ms
memory: 32724kb

input:

17542991876646715766
1237458 18364525

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #49:

score: 30
Accepted
time: 91ms
memory: 32660kb

input:

11509469256784773735
1237458 18364525

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #50:

score: 30
Accepted
time: 93ms
memory: 32228kb

input:

15187255126140633228
1237458 18364525

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #51:

score: 30
Accepted
time: 83ms
memory: 30084kb

input:

5596351031354288494
1237458 18364525

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #52:

score: 30
Accepted
time: 89ms
memory: 31628kb

input:

1956884572310497827
1237458 18364525

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #53:

score: 30
Accepted
time: 105ms
memory: 33756kb

input:

1848311009363078904
1237458 18364525

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #54:

score: 30
Accepted
time: 90ms
memory: 32420kb

input:

7958126186516090968
1237458 18364525

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #55:

score: 30
Accepted
time: 98ms
memory: 33728kb

input:

14895520484903877251
1237458 18364525

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #56:

score: 30
Accepted
time: 108ms
memory: 34112kb

input:

252125976313631579
1237458 18364525

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #57:

score: 30
Accepted
time: 124ms
memory: 36056kb

input:

8822075999373790379
1237458 18364525

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #58:

score: 30
Accepted
time: 84ms
memory: 31920kb

input:

12301960690081072082
1237458 18364525

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #59:

score: 30
Accepted
time: 90ms
memory: 31828kb

input:

6580770166803301984
1237458 18364525

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #60:

score: 30
Accepted
time: 102ms
memory: 33808kb

input:

11293302044901951261
1237458 18364525

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Subtask #4:

score: 37.5
Acceptable Answer

Test #61:

score: 50
Accepted
time: 378ms
memory: 43392kb

input:

6934415118162240981
1237458 18364524
21312414 32673238 236176120

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #62:

score: 37.5
Acceptable Answer
time: 375ms
memory: 43588kb

input:

3842633665807973417
1237458 18364524
21312413 32673238 236176120

output:

126534125

result:

points 0.75 Correct Answer. Correct in 98 tests.

Test #63:

score: 50
Accepted
time: 380ms
memory: 43580kb

input:

7239866286946328663
1237458 18364524
21312414 32673238 236176120

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #64:

score: 50
Accepted
time: 377ms
memory: 43260kb

input:

7703816040948127846
1237458 18364524
21312414 32673238 236176120

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #65:

score: 50
Accepted
time: 382ms
memory: 43568kb

input:

3603384166177697472
1237458 18364524
21312413 32673238 236176120

output:

126534126

result:

ok Perfect. Correct in 99 tests.

Test #66:

score: 50
Accepted
time: 378ms
memory: 43600kb

input:

3656923047342207392
1237458 18364524
21312414 32673238 236176120

output:

126534126

result:

ok Perfect. Correct in 99 tests.

Test #67:

score: 50
Accepted
time: 376ms
memory: 43384kb

input:

527459705711820317
1237458 18364524
21312413 32673238 236176120

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #68:

score: 50
Accepted
time: 379ms
memory: 43504kb

input:

9663120536403908130
1237458 18364524
21312413 32673238 236176120

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #69:

score: 50
Accepted
time: 108ms
memory: 28364kb

input:

9439840407846051020
1237458 18364524
21312414 32673236 236176120

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #70:

score: 50
Accepted
time: 393ms
memory: 43548kb

input:

13809961864883455849
1237458 18364524
21312413 32673238 236176120

output:

126534126

result:

ok Perfect. Correct in 99 tests.

Test #71:

score: 50
Accepted
time: 381ms
memory: 43580kb

input:

15124215729371202231
1237458 18364524
21312414 32673238 236176120

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #72:

score: 50
Accepted
time: 420ms
memory: 43536kb

input:

7117551168813448970
1237458 18364524
21312414 32673238 236176120

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #73:

score: 50
Accepted
time: 382ms
memory: 43592kb

input:

5561290863673255532
1237458 18364524
21312414 32673238 236176120

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #74:

score: 50
Accepted
time: 404ms
memory: 43620kb

input:

13802789789482912767
1237458 18364524
21312414 32673238 236176120

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #75:

score: 50
Accepted
time: 410ms
memory: 43484kb

input:

9913943612955590097
1237458 18364524
21312414 32673238 236176120

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #76:

score: 50
Accepted
time: 373ms
memory: 43552kb

input:

9308648462630523956
1237458 18364524
21312414 32673238 236176120

output:

126534126

result:

ok Perfect. Correct in 99 tests.

Test #77:

score: 50
Accepted
time: 375ms
memory: 43524kb

input:

7898242699188216716
1237458 18364524
21312414 32673238 236176120

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #78:

score: 50
Accepted
time: 371ms
memory: 43536kb

input:

17772607140853820910
1237458 18364524
21312414 32673238 236176120

output:

126534127

result:

ok Perfect. Correct in 100 tests.

Test #79:

score: 50
Accepted
time: 365ms
memory: 43596kb

input:

3917596392610036445
1237458 18364524
21312413 32673238 236176120

output:

126534126

result:

ok Perfect. Correct in 99 tests.

Test #80:

score: 50
Accepted
time: 380ms
memory: 43372kb

input:

7049562837957796004
1237458 18364524
21312414 32673238 236176120

output:

126534127

result:

ok Perfect. Correct in 100 tests.