QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#874316#3235. Glad You Camezxh923100 ✓957ms11772kbC++141.4kb2025-01-27 23:54:302025-01-27 23:54:31

Judging History

你现在查看的是最新测评结果

  • [2025-01-27 23:54:31]
  • 评测
  • 测评结果:100
  • 用时:957ms
  • 内存:11772kb
  • [2025-01-27 23:54:30]
  • 提交

answer

#include<bits/stdc++.h>
#define uint unsigned int
#define ll long long
#define N 100005
#define K 20
#define pii pair<int,int>
#define x first
#define y second
#define pct __builtin_popcount
//#define mod 1000000007
#define pi acos(-1)
#define inf 2e18
#define eps 1e-8
using namespace std;
int T=1,n,m,mod=1<<30,lg[N];
uint f[N][K];
uint X,Y,Z,W;
uint rng61(){
	X=X^(X<<11);
	X=X^(X>>4);
	X=X^(X<<5);
	X=X^(X>>14);
	W=X^(Y^Z);
	X=Y;
	Y=Z;
	Z=W;
	return Z; 
}
void init(){
	for(int i=2;i<N;i++){
		lg[i]=lg[i>>1]+1;
	}
}
void modify(uint l,uint r,uint v){
	int k=lg[r-l+1];
	f[l][k]=max(f[l][k],v);
	f[r-(1<<k)+1][k]=max(f[r-(1<<k)+1][k],v);
}
void work(){
	ll res=0;
	for(int j=K-1;j;j--){
		for(int i=1;i+(1<<j-1)<=n;i++){
			f[i][j-1]=max(f[i][j-1],f[i][j]);
			f[i+(1<<j-1)][j-1]=max(f[i+(1<<j-1)][j-1],f[i][j]);
		}
	}
	for(int i=1;i<=n;i++){
		res^=(1ll*i*f[i][0]);
	}
	cout<<res<<'\n';
}
void solve(int cs){
	cin>>n>>m>>X>>Y>>Z;
	memset(f,0,sizeof f);
	for(int i=1;i<=m;i++){
		uint a,b,c;
		a=rng61();
		b=rng61();
		c=rng61();
		uint l,r,v;
		l=min(a%n+1,b%n+1);
		r=max(a%n+1,b%n+1);
		v=c%mod;
		modify(l,r,v);
	}
	work();
}
void solution(){
    /*
    nothing here
    */
}
signed main(){
    ios::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
	init();
	cin>>T;
    for(int cs=1;cs<=T;cs++){
        solve(cs);
    }
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Pretests


Final Tests

Test #1:

score: 100
Accepted
time: 957ms
memory: 11772kb

input:

100
99692 4999933 19534371 932043388 882843951
1 1 74555813 1051681267 602700926
1 1 356774565 822633486 652307491
21212 3921304 230998460 464796894 835118549
1 1 985069357 609441994 816940505
1 1 640078061 640676612 579727924
1 1 1049724109 212416273 423411911
1 1 329251472 38196364 316193416
1 1 2...

output:

500902185027
413878556
921636820
9793282688
935743744
189352047
428426450
85726203
191222270
1217147494301
419417633
555752083
106301077377843
526639403
645553938
583478440
722753580
1605028218519
841024605
105781365150397
278926204
357660105
944368702
1073699732
823021601
923370469
127769930
107235...

result:

ok 100 lines