博客
关于我
Codeforces Round #646 (Div. 2) C - Game On Leaves (树上博弈)
阅读量:724 次
发布时间:2019-03-21

本文共 1325 字,大约阅读时间需要 4 分钟。

题意:
给你一颗有n个节点的无根树,现在每次可以删除一个以叶子节点为端点的所有边并删除这个节点,现在指定一个节点x,谁先删到这个节点,谁就获胜(Ayush 先手 Ashish后手)。
叶子节点是指度小于等于1的节点

思路:

如果指定的节点本来是叶子节点,那么Ayush第一次就能直接拿到它,赢得比赛。这种情况下,Ayush肯定会赢。如果Ayush不能一举拿到,那么每个人都会尽量避免让指定节点的度降到1。也就是说,指定的节点一旦度为2,其他人就不会再主动删除与它相连的边,除非对方已经没有其他选择了。这让我想到这是一场拿数的博弈,谁先拿到只剩最后两个节点时谁就赢了。如果初始节点数n是偶数,Ayush一开始就能掌控节奏,最后让Ashish陷入孤立无援;反之,如果n是奇数,情况就有所不同,Ashish可能有机会反败为胜。

AC代码:

```cpp#include
#include
using namespace std;

int read() {char c = getchar();int x = 0, s = 1;while (c < '0' || c > '9') {if (c == '-') s = -1;c = getchar();}while (c >= '0' && c <= '9') {x = x * 10 + (c - '0');c = getchar();}return x * s;}

#define NewNode (TreeNode *)malloc(sizeof(TreeNode))#define Mem(a, b) memset(a, b, sizeof(a))

const int N = 1e5 + 5;const long long INFINF = 0x7f7f7f7f7f7f7f;const int INF = 0x3f3f3f3f;const double EPS = 1e-7;const unsigned long long mod = 998244353;const double II = acos(-1);const double PP = II * 1.0 / 180.0;

typedef long long ll;typedef unsigned long long ull;typedef pair<int, int> pii;typedef pair<ll, ll> piil;

int main() {std::ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int t;while (t--) {int n, x;cin >> n >> x;int ru[1050] = {0};for (int i = 0; i < n-1; ++i) {cin >> a >> b;ru[a]++, ru[b]++;}if (ru[x] <= 1) {cout << "Ayush\n";} else if (n % 2 == 0) {cout << "Ayush\n";} else {cout << "Ashish\n";}}}

转载地址:http://ynirz.baihongyu.com/

你可能感兴趣的文章
NOIp2005 过河
查看>>
NOPI读取Excel
查看>>
NoSQL&MongoDB
查看>>
NotImplementedError: Cannot copy out of meta tensor; no data! Please use torch.nn.Module.to_empty()
查看>>
npm install digital envelope routines::unsupported解决方法
查看>>
npm install报错,证书验证失败unable to get local issuer certificate
查看>>
npm install无法生成node_modules的解决方法
查看>>
npm run build 失败Compiler server unexpectedly exited with code: null and signal: SIGBUS
查看>>
npm run build报Cannot find module错误的解决方法
查看>>
npm run build部署到云服务器中的Nginx(图文配置)
查看>>
npm run dev 报错PS ‘vite‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。
查看>>
npm start运行了什么
查看>>
npm WARN deprecated core-js@2.6.12 core-js@<3.3 is no longer maintained and not recommended for usa
查看>>
npm入门,这篇就够了
查看>>
npm切换到淘宝源
查看>>
npm前端包管理工具简介---npm工作笔记001
查看>>
npm和yarn清理缓存命令
查看>>
npm和yarn的使用对比
查看>>
npm学习(十一)之package-lock.json
查看>>
npm报错unable to access ‘https://github.com/sohee-lee7/Squire.git/‘
查看>>