比赛 20161116 评测结果 WWWWWWWWWW
题目名称 新型武器 最终得分 0
用户昵称 24193 运行时间 1.994 s
代码语言 C++ 内存使用 8.33 MiB
提交时间 2016-11-16 12:12:17
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<queue>
using namespace std;
int n,q,a,u,c;
int i,j,l,ans=0;
struct tree{
	int v;
	int d;
	int lian;
	int z[2];
}t[300001];
struct bian{
	int fr,to;
}b[300001];
int main()
{
	freopen("newweapon.in","r",stdin);
	freopen("newweapon.out","w",stdout);
	cin>>n>>q;
	for(i=0;i<n;i++)
	  {
	  	cin>>t[i].v;
	  }
	for(i=0;i<n-1;i++)
	  {
	  	cin>>b[i].fr>>b[i].to;
	  	t[b[i].fr].lian++;
	  	t[b[i].fr].z[t[b[i].fr].lian]=b[i].to;
	  	t[b[i].to].d++;
	  }
	for(l=0;l<q;l++)
	  {
	  	cin>>a>>u>>c;
	  	if(a==1)
	  	  {
	  	  	t[u].v=c;
	  	  }
	  	if(a==2)
	  	  {
	  	  	for(j=0;j<n;j++)
	  	  	  {
	  	  	  	if(t[j].d-t[u].d==c)
	  	  	  	  ans+=t[j].v;
	  	  	  }
	  	  }
	  	cout<<ans<<endl;
	  }
	fclose(stdin);fclose(stdout);
	return 0;
}