UPC

阅读: 评论:0

UPC

UPC

题目传送门

题目描述:

给定一棵n个点的树,其中1号结点是根,每个结点要么是黑色要么是白色
现在小Bo和小Biao要进行博弈,他们两轮流操作,每次选择一个黑色的结点将它变白,之后可以选择任意多个(可以不选)该点的祖先(不包含自己),然后将这些点的颜色翻转,不能进行操作的人输
由于小Bo猜拳经常输给小Biao,他想在这个游戏上扳回一城,现在他想问你给定了一个初始局面,是先手必胜还是后手必胜

输入

第一行一个正整数n
第二行n个整数w1..wn,wi∈{0,1},wi=1表示第i个结点一开始是黑点,否则是白点
接下来n−1行,每行两个正整数u,v表示一条树边(u,v)1≤n≤1000

输出

如果先手必胜,输出First ,否则输出Second

题解:先手存在一个必败态,就是当每一层的黑色结点数都为偶数时,先手必败。

AC代码:

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <string>
#include <cmath>
#include <queue>
#include <stack>
#include <vector>
#include <map>
#include <set>
using namespace std;
#define io ios::sync_with_stdio(0),cin.tie(0)
#define inf 0x3f3f3f
const int mod=1e9+7;
const int maxn=1e3+7;
vector <int> e[maxn];
int n,ans,deeps;
int a[maxn],vis[maxn];
void dfs(int u,int f,int deep)
{deeps=max(deeps,deep);for(int i=0;i<e[u].size();i++){int v=e[u][i];if(v!=f)dfs(v,u,deep+1);}if(a[u]==1)vis[deep]++;
}
int main()
{io;cin>>n;for(int i=1;i<=n;i++)cin>>a[i];for(int i=1;i<n;i++){int st,en;cin>>st>>en;e[st].push_back(en);e[en].push_back(st);}dfs(1,0,0);for(int i=0;i<=deeps;i++){if(vis[i]%2==1){cout<<"First"<<endl;return 0;}}cout<<"Second"<<endl;return 0;
}
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <string>
#include <cmath>
#include <queue>
#include <stack>
#include <vector>
#include <map>
#include <set>
using namespace std;
#define io ios::sync_with_stdio(0),cin.tie(0)
#define inf 0x3f3f3f
const int mod=1e9+7;
const int maxn=1e3+7;
vector <int> e[maxn];
int n,ans;
int a[maxn],vis[maxn];
void dfs(int u,int f,int deep)
{for(int i=0;i<e[u].size();i++){int v=e[u][i];if(v!=f)dfs(v,u,deep+1);}if(a[u]){vis[deep]++;if(vis[deep]%2==0)ans++;elseans--;}
}
int main()
{io;cin>>n;for(int i=1;i<=n;i++)cin>>a[i];for(int i=1;i<n;i++){int u,v;cin>>u>>v;e[u].push_back(v);e[v].push_back(u);}dfs(1,0,0);if(ans!=0)cout<<"First"<<endl;elsecout<<"Second"<<endl;return 0;
}

 

本文发布于:2024-02-01 05:25:11,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170673631334201.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:UPC
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23