博客
关于我
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/

你可能感兴趣的文章
PostgreSQL配置文件--资源使用(除WAL外)
查看>>
PostgreSQL(一)教程 -----从头开始
查看>>
PostgresSQL查询数据中用逗号隔开的数据以及@>与<@的区别
查看>>
Postgres用returning实现mysql的last_insert_id
查看>>
postgres访问认证配置文件pg_hba.conf
查看>>
Postgres间隔大量写IO的解决办法
查看>>
Posting JSON to Spring MVC Controller
查看>>
Qt开发——可隐藏的对话框
查看>>
Qt开发——QWebEngineView简易网络浏览器(二)
查看>>
Postman List类型传参方法
查看>>
Qt开发——QWebEngineView浏览器开发
查看>>
Qt开发——QThread多线程初探
查看>>
Postman —— 实现接口自动化测试!
查看>>
Qt开发——QStackedWidget嵌入式窗体切换
查看>>
Qt开发——QSplashScreen程序启动图
查看>>
Postman 内置的动态变量
查看>>
Qt开发——QProgressBar/QProgressDialog进度条
查看>>
Qt开发——QMouseEvent鼠标事件
查看>>
Postman 发送 post 请求,服务器接受到的却是 get 请求
查看>>
Qt开发——QFileSystemModel访问本机文件系统
查看>>