hdu6105(想法题)
来源:互联网 发布:dt大数据 编辑:程序博客网 时间:2024/05/16 08:32
题意:Alice和Bob玩一个游戏,开始有一颗没有颜色的树,Bob和Alice分别对树进行染色,Alice每次将一个没有颜色的点涂成白色,Bob每次将一个没有颜色的点涂成黑色,并且可以将与涂上黑色的点直接相邻的点变为黑色,假如最后树上存在白色点,Alice赢,否则Bob赢。Bob还有一个特权,可以在任意时候,删除任意一条边。
题解:通过推论发现,当树为奇数点数时,Alice必应,偶数的时候,假如Bob能将树划分为所有都是只有两个点相连的话,Bob赢。
AC代码:
- #include<stdio.h>
- #include<vector>
- using namespace std;
- vector<int>vt[505];
- int size[505];
- int flag=0;
- void dfs(int u)
- {
- int num=0;
- size[u]=1;
- for(int i=0;i<vt[u].size();i++)
- {
- int to=vt[u][i];
- dfs(to);
- size[u]+=size[to];
- if(size[to]%2==1)num++;
- }
- if(num>=2)flag=1;
- }
- int main()
- {
- int T;
- scanf("%d",&T);
- while(T--)
- {
- for(int i=0;i<505;i++)vt[i].clear();
- int n,k;
- scanf("%d%d",&n,&k);
- for(int i=2;i<=n;i++)
- {
- int f;
- scanf("%d",&f);
- vt[f].push_back(i);
- }
- flag=0;
- dfs(1);
- if(flag==1||n%2==1)printf("Alice\n");
- else if(n/2-1>k)printf("Alice\n");
- else printf("Bob\n");
- }
- }
阅读全文
0 0
- hdu6105(想法题)
- hdu6105(想法题)
- hdu6105(博弈)
- hdu6105
- hdu6105
- HDU6105(博弈题,非酋得不到救赎)
- Hdu6105 Gameia(2017多校第6场)
- 2017杭电多校第六场 1010 Gameia(博弈)HDU6105
- [hdu6105]Gameia
- HDU6105-Gameia
- hdu4923(想法题)
- hdu 4811(想法题)
- hdu 5744(想法题)
- hdu6105 Gameia 思维
- HDU6105-二分匹配
- hdu 4803 (想法题 卡精度)
- UVA 1450 Airport(二分+想法题)
- hdu 5358 First One(想法题)
- CentOS搭建SVN服务器及使用Eclipse连接SVN服务器
- 年终总结
- wingIDE右侧文件列表移动到左侧
- 排序:插入排序
- 移动端图片上传裁切(版权归秒为所有,仅为搬运)
- hdu6105(想法题)
- Codeforces Round #430 (Div. 2) A B C D
- 算法导论——关于快速排序的实现(c语言实现)
- 如何给变量取个简短且无歧义的名字
- python简介
- 存储过程调试信息的输出
- bzoj 2733: [HNOI2012]永无乡(线段树启发式合并)
- 洛谷P1282 多米诺骨牌
- 改试卷