hdu6105(想法题)
来源:互联网 发布:淘宝网休闲女鞋红 编辑:程序博客网 时间:2024/05/29 10:46
题意: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(想法题)
- HDU 4734 F(x) 数位dp
- 关于ScrollView拖拽事件和Button点击事件冲突解决方法
- 1~n 之间 数字x出现的次数
- 精品旅游项目第1天-项目搭建
- 英语学习--八月转折
- hdu6105(想法题)
- POJ 3604 Professor Ben
- 字符串多个范围替换
- 东北大学软件学院操作系统v实验报告
- 8月份英语总结
- 解决html转义及防止javascript注入攻击
- 字符串和算术式拼接的坑
- 周中训练笔记
- 2017 百度