- 洛谷
- 2020-05-24 15:01:24 @
已重复试验,确认了这个~~bug(?)~~结果。
https://www.luogu.com.cn/record/33852146
https://www.luogu.com.cn/record/33852441
https://www.luogu.com.cn/record/33852436
https://www.luogu.com.cn/record/33852316
https://www.luogu.com.cn/record/33852312
https://www.luogu.com.cn/record/33852306
https://www.luogu.com.cn/record/33852280
https://www.luogu.com.cn/record/33852260
?为什么一下子#1WA一下子#2wa。
#include<iostream>
#include<cstdio>
using namespace std;
long long a[1000005];
long long f[105][100005];
struct xyq{
int v,next;
}_[1000005];
int head[1000005],tot=1;
void add(int u,int v){
_[tot].v=v;
_[tot].next=head[u];
head[u]=tot;
tot++;
}
int main(){
int n,m,q,i,j,k,A,B;
long long ykb,sum=0;
cin>>n>>m>>q;
for(i=1;i<=n;i++){
cin>>a[i];
f[i][0]=a[i];
}
for(i=0;i<m;i++){
cin>>A>>B;
add(A,B);
add(B,A);
}
if(m==(n*(n-1)>>1)){
for(i=2;i<=n;i++){
sum=sum^a[i];
}
if(n&1){
for(i=1;i<=q;i++){
cin>>ykb;
cout<<(ykb?sum:a[0])<<endl;
}
}else{
for(i=1;i<=q;i++){
cin>>ykb;
// cout<<ykb<<":";
if(ykb&1){
cout<<sum<<endl;
}else{
cout<<a[1]<<endl;
}
}
}
return 0;
}
// for(i=1;i<=n;i++){
// cout<<i<<"|";
// for(j=head[i];j;j=_[j].next){
// cout<<_[j].v<<" ";
// }
// cout<<endl;
// }
for(i=1;i<=10000;i++){
// cout<<"----------------------------------------i="<<i<<"---------------------------------"<<endl;
for(j=1;j<=n;j++){
// cout<<"j="<<j<<endl;
sum=0;
for(k=head[j];k;k=_[k].next){
sum=sum^f[_[k].v][i-1];
// cout<<"v="<<_[k].v<<",sum="<<sum<<endl;
}
f[j][i]=sum;
// cout<<f[j][i]<<" ";
}
// cout<<endl;
}
for(i=1;i<=q;i++){
cin>>ykb;
if(ykb>10000){
cout<<0<<endl;
}else{
cout<<f[1][ykb]<<endl;
}
}
return 0;
}
4 条评论
-
yangfengzhao LV 8 @ 2024-06-14 18:53:30
"随机算法"
-
2020-05-27 18:14:36@
在你谷上发帖不是更好吗?
-
2020-05-24 21:59:36@
%%%ak大神
-
2020-05-24 15:52:09@
别tm的在vijos上宣传洛谷的团队,比赛,问关于洛谷的问题
别当这里是 洛谷 分站
- 1