比赛 |
USACO银组重赛hhh |
评测结果 |
AAAAAAAAAAAAAAA |
题目名称 |
Clock Tree |
最终得分 |
100 |
用户昵称 |
ShallowDream雨梨 |
运行时间 |
0.402 s |
代码语言 |
C++ |
内存使用 |
13.79 MiB |
提交时间 |
2020-03-02 14:56:27 |
显示代码纯文本
#include<bits/stdc++.h>
#define int long long
#define re register
#define il inline
#define inf 1e9
#define eps 1e-15
#define ll long long
#define mod 1000000
#define bianli for(int i=head[x];i;i=a[i].next)
#define QWQ cout<<"qwq"
#define me(qw) memset(qw,0,sizeof(qw));
#define meinf(qw) memset(qw,0x3f,sizeof(qw));
using namespace std;
const int maxn=2505;
struct qqq{int to,next;}a[maxn*2];
int head[maxn],tot,b[maxn],t[maxn];
void add(int x,int y){
a[++tot].to=y;
a[tot].next=head[x];
head[x]=tot;}
void dfs(int x,int fa){
bianli{
int to=a[i].to;
if(to==fa)continue;
dfs(to,x);
t[x]=(t[x]-t[to]+12)%12;}}
signed main(){
freopen("usaco_Feb_clocktree.in","r",stdin);
freopen("usaco_Feb_clocktree.out","w",stdout);
int n,q,ans=0,w;
cin>>n;
for(int i=1;i<=n;i++)cin>>b[i];
for(int i=1;i<n;i++)cin>>q>>w,add(q,w),add(w,q);
for(int i=1;i<=n;i++){
memcpy(t,b,sizeof(b));
dfs(i,0);
if(t[i]%12==1||t[i]%12==0)++ans;
}
cout<<ans;
return 0;
}