Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
118999 陈家宝 T4 回家 C++ 解答错误 40 12 MS 2672 KB 909 2024-01-03 13:10:03

Tests(2/5):


#include<bits/stdc++.h> #define N 100005 using namespace std; inline int read(){ int x(0),f(1); char ch(getchar()); while(ch<'0'||ch>'9'){ if(ch=='-')f=-1; ch=getchar(); } while(ch>='0'&&ch<='9') x=(x<<1)+(x<<3)+(ch^48),ch=getchar(); return x*f; } int T,n,m,p[N],sum[N],h[N]; vector<int> t[N]; bool dfs(int k,int f){ sum[k]=p[k]; for(int i(0);i<t[k].size();++i){ int s(t[k][i]); if(s^f){ if(!dfs(s,k))return 0; sum[k]+=sum[s]; } } return sum[k]>=h[k]&&min(sum[k]+h[k],sum[k]-h[k])>=0&&!(sum[k]-h[k]&1); } int main() { T=read(); while(T--){ n=read(); m=read(); for(int i(1);i<=n;++i){ p[i]=read(); h[i]=read(); } for(int i(1);i<n;++i){ int u(read()),v(read()); t[u].push_back(v); t[v].push_back(u); } if(!dfs(1,0))puts("NO"); else puts("YES"); for(int i(1);i<=n;++i) t[i].clear(); } return 0; }


测评信息: