HDU 6105 Gameia(树上博弈 17多校第六场)
来源:互联网 发布:js offsetparent 编辑:程序博客网 时间:2024/05/18 18:21
题目大意
给定一个树,A可以选一个未染色结点染成白色 B有k次机会可以在任何时候切断一条连边,B可以选一个未染色结点染成黑色,同时和这个结点连接的点也会变成黑色(无论是白色还是未染色),本题是个无向图。最后还有白色的结点那么A赢否则B赢。
分析
如果Bob能把这棵树分成若干两个一组的点对,那么Bob取得胜利,否则Alice获胜
代码
#include<bits/stdc++.h>using namespace std;const int MAXN=5005;int T;int n,k;int fa[MAXN];bool bj[MAXN];//bj[i]为1表示染色了int cnt;struct Edge{ int v; int next;}edge[MAXN];int edgecount;int head[MAXN];void Init(){ edgecount=0; memset(bj,0,sizeof(bj)); memset(head,-1,sizeof(head));}void Add_edge(int u,int v){ edge[++edgecount].v=v; edge[edgecount].next=head[u]; head[u]=edgecount;}void Dfs(int u,int p){ for(int k=head[u];k!=-1;k=edge[k].next) { int v=edge[k].v; Dfs(v,u); } if(bj[u]==0 && bj[p]==0 && u!=1){bj[u]=bj[p]=1;cnt+=2;}}int main(){ scanf("%d",&T); while(T--) { Init(); scanf("%d%d",&n,&k); for(int i=2;i<=n;i++) { scanf("%d",&fa[i]); Add_edge(fa[i],i); } cnt=0; Dfs(1,0); if(cnt==n && (n-1-n/2)<=k)cout<<"Bob"<<endl;//可以两两匹配 else cout<<"Alice"<<endl; }}/*56 61 2 3 4 3*/
阅读全文
0 0
- HDU 6105 Gameia(树上博弈 17多校第六场)
- HDU 6105 Gameia (树上博弈 17多校赛第六场)
- 【树上博弈】 hdu 6105 Gameia
- hdu6105 Gameia 2017多校第六场1010 树+博弈
- HDU 6105 Gameia 博弈
- 多校6 Gameia-6105 树上博弈 & 染色
- HDU 6105 Gameia【思维+博弈】
- HDU 6105 Gameia(思维博弈)
- hdu -- 6105 -- Gameia(博弈)
- HDU 6105 Gameia (博弈)
- hdu 6105 Gameia (博弈)
- hdu 6105 Gameia(博弈)
- HDU 6105 Gameia 树上博弈(思路题)(内附官方题解)
- 2017杭电多校第六场 1010 Gameia(博弈)HDU6105
- HDU 6105 Gameia 博弈(思维)
- hdu 6105 Gameia【图+博弈详解】
- HDU 6105 Gameia(树+博弈)
- HDU 6105 Gameia(博弈+二分匹配)
- QAQ & ORZ 的签到题 (河南省多校联萌(三) 问题D)
- MailBee.NET Objects显示HTML/纯文本邮件教程(二):在桌面应用程序中显示
- Css伪元素和伪类
- WinForm-ListBox控件美化
- 设计模式之装饰者模式篇
- HDU 6105 Gameia(树上博弈 17多校第六场)
- Java创建和解析Json数据方法(四)——Google Gson包的使用
- RESTful API实战笔记(接口设计及Java后端实现)
- HDU 6096:妙用AC自动机(666)
- MailBee.NET ObjectsL显示HTML/纯文本邮件教程(三):显示带嵌入图片的邮件
- SparkSQL---Save(Java)
- 一网打尽所有常用的header头
- Java实现敏感词过滤
- 利用FileChannel完成文件的读、写、复制