UOJ Logo

NOI.AC

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#214646#2376. 树与异或jsxheng403986ms92620kbC++111.3kb2024-11-20 22:15:582024-11-20 23:10:17

answer

#include<bits/stdc++.h>
#define int long long
using namespace std;
namespace IO{
	template<typename T> inline void read(T &x){
		bool f=1;x=0;char ch=getchar();
		while(ch<'0'||ch>'9'){if(ch=='-')f=0;ch=getchar();}
		while(ch>='0'&&ch<='9')x=(x<<1)+(x<<3)+(ch&15),ch=getchar();
		x=f?x:-x;
	}
	template<typename T> inline void write(T x){
		if(x<0) putchar('-'),x=-x;
	   	if(x>9) write(x/10);
	   	putchar(('0'+x%10));
	}
	template <typename T,typename ...Args> inline void read(T &x,Args &...args){read(x);read(args...);}
	template<typename T> inline void write(T x,char c){write(x),putchar(c);}
}
using namespace IO;
const int mod=1e9+7;
int n,q;
vector <int> e[1000005];
int a[1000005],val[1000005],sum[1000005],fa[1000005];
void dfs(int u, int fath) {
	for(auto v:e[u]){
		if(v==fath)continue;
		fa[v]=u;dfs(v,u);
		val[u]^=a[v];
		sum[u]^=val[v];
	}
}
signed main(){
	read(n,q);
	for(int i=1;i<=n;i++)read(a[i]);
	for(int i=1,x,y;i<n;i++){
		read(x,y);
		e[x].push_back(y);
		e[y].push_back(x);
	}
	int root=1,res=0;
	dfs(root,0);
	for(int i=1,x,v;i<=q;i++){
		read(x,v);
		val[fa[x]]^=a[x]^v;
		sum[fa[fa[x]]]^=a[x]^v;
		a[x]=v;
		int ans=val[x]^sum[x]^a[fa[x]]^a[fa[fa[x]]]^val[fa[x]];
		res=(res+ans*i%mod*i%mod)%mod;
	}
	write(res);
	return 0;
}

详细

小提示:点击横条可展开更详细的信息

Test #1:

score: 0
Wrong Answer
time: 7ms
memory: 24696kb

input:

1000 994
780089107 4670366 871010085 73730768 526852049 572589363 885190993 1049357301 450850404 460...

output:

121588910

result:

wrong answer 1st numbers differ - expected: '503748432', found: '121588910'

Test #2:

score: 10
Accepted
time: 8ms
memory: 24696kb

input:

1000 999
26885995 181771373 378079250 245122183 660787775 479226046 575400611 257120086 214404794 48...

output:

301019013

result:

ok 1 number(s): "301019013"

Test #3:

score: 0
Wrong Answer
time: 8ms
memory: 24700kb

input:

1000 994
978408146 31636243 945016735 512129400 92881624 689719983 649699545 964802847 100094796 941...

output:

971937304

result:

wrong answer 1st numbers differ - expected: '250985726', found: '971937304'

Test #4:

score: 0
Wrong Answer
time: 68ms
memory: 31200kb

input:

100000 99994
194640838 777315353 114710204 754050649 372592717 210279787 542056883 638262010 7998293...

output:

58313214

result:

wrong answer 1st numbers differ - expected: '897014293', found: '58313214'

Test #5:

score: 10
Accepted
time: 48ms
memory: 31200kb

input:

100000 100000
458877901 215980825 777376132 863774865 34430451 828397116 94813690 931300514 10548367...

output:

351450518

result:

ok 1 number(s): "351450518"

Test #6:

score: 10
Accepted
time: 54ms
memory: 31248kb

input:

100000 99991
56406146 757409402 876799234 573444553 883023109 326033134 328116703 623771278 41269529...

output:

440189625

result:

ok 1 number(s): "440189625"

Test #7:

score: 0
Wrong Answer
time: 982ms
memory: 92620kb

input:

1000000 999998
814298729 663807029 628693441 45635199 148428014 913833778 1034283337 600802841 58045...

output:

781598179

result:

wrong answer 1st numbers differ - expected: '447637970', found: '781598179'

Test #8:

score: 10
Accepted
time: 938ms
memory: 92476kb

input:

1000000 999993
112899321 425466951 471078924 857561298 449437156 710041336 1033281580 23390934 44420...

output:

449713864

result:

ok 1 number(s): "449713864"

Test #9:

score: 0
Wrong Answer
time: 959ms
memory: 92500kb

input:

1000000 1000000
273043260 1042513348 30746190 864557483 187812119 562837674 263192174 364182254 3537...

output:

427738314

result:

wrong answer 1st numbers differ - expected: '922464355', found: '427738314'

Test #10:

score: 0
Wrong Answer
time: 914ms
memory: 92464kb

input:

1000000 999995
83067658 1064735371 623243759 757522311 539363923 924297206 75317137 543750195 822898...

output:

116310082

result:

wrong answer 1st numbers differ - expected: '318242296', found: '116310082'