QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#874316 | #3235. Glad You Came | zxh923 | 100 ✓ | 957ms | 11772kb | C++14 | 1.4kb | 2025-01-27 23:54:30 | 2025-01-27 23:54:31 |
Judging History
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;
}
详细
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