当前位置: 首页 > web >正文

pkucpc2025 L:Game on Tree

题意

两个人在一棵无根树上玩游戏,每次可以删掉若干个叶子节点,不能操作的人输。

思路

比赛的时候我去写H Quintuple了,队友貌似在我写的时候把这道题讨论出来了。
后来补题的时候花了大概花了70分钟左右ac这道题。

首先考虑一条链的情况,那么必败态是链的长度为3的倍数,十分显然。

就是这个结论误导了我很久。

后面发现了一个很有趣的性质,如果存在一个叶子节点,把它删掉以后不会产生新的叶子节点,那么必胜:考虑去掉这个叶子节点以后的树,如果是必败的,那么只需要去掉这个叶子节点;否则去掉这个叶子节点并且并将剩下的部分转移成必败态。

然后就变成了判断是否有叶子节点到一个deg>=3的点的距离为奇数,如果有就是必胜。

#include <bits/stdc++.h>
#define ll long long
using namespace std;const int N = 1e3 + 10;int n; vector<int> e[N];void solve() {cin >> n;for (int i = 1; i <= n; i++) {e[i].clear();}for (int i = 1; i < n; i++) {int x, y;cin >> x >> y;e[x].push_back(y);e[y].push_back(x);}int mx = 0;for (int i = 1; i <= n; i++) {mx = max(mx, (int)e[i].size());}if (mx <= 2) {cout << ((n - 1) % 3 ? "Alice\n" : "Bob\n");return;}for (int i = 1; i <= n; i++) {if (e[i].size() > 1) continue;int x = i; int last = 0;int cnt = 0;while (e[x].size() <= 2) {int nxt;for (int y : e[x]) {if (y == last) continue;nxt = y; break;}last = x, x = nxt, cnt++;}if (cnt & 1) {cout << "Alice\n";return;}}cout << "Bob\n";
}int main() {// freopen("in.in", "r", stdin);ios::sync_with_stdio(false);cin.tie(nullptr);int T; cin >> T;while (T--) {solve();}
}
http://www.xdnf.cn/news/7489.html

相关文章:

  • python学习day2(未写完,明天继续补充)
  • 洛谷B3876—— [信息与未来 2015] 中间值
  • 为 Windows 和 Ubuntu 中设定代理服务器的详细方法
  • 4款好用的备忘录记事工具分享
  • Spring boot 集成 Knife4j
  • 网络I/O学习-poll(三)
  • 范围管理的实践策略与创新应用
  • 头歌之软件工程-数据设计
  • 433. 最小基因变化
  • AcWing 223. 阿九大战朱最学——扩展欧几里得算法
  • Javascript本地存储的方式有哪些?区别及应用场景?(含Deep Seek讲解)
  • [长城杯 2024]anote
  • 怎么利用JS根据坐标判断构成单个多边形是否合法
  • HarmonyOS Next应用分层架构下组件封装开发实践
  • 子网前缀长度
  • 【General Agent Benchmark】论文分享No.12:LLF-Bench
  • Python训练第三十天
  • 新一代请求库niquests使用入门
  • 告别Spring AI!我的Java轻量AI框架实践(支持多模型接入|注解式MCP架构|附开源地址)
  • “星睿O6”AI PC 开发套件评测: NPU 算力测评(1)
  • DAY30
  • Docker 运维管理
  • 使用shell快速删除Docker容器、镜像和存储内容
  • Python海龟绘图-斗地主
  • redis在spring boot中异常退出
  • 【C语言】贪吃蛇小游戏
  • Python 实例传递的艺术:四大方法解析与最佳实践
  • 每日算法 -【Swift 算法】不含重复字符的最长子串:暴力解法 vs 滑动窗口
  • Python 实现图片浏览和选择工具
  • 出海跨境电商内容管理难?Baklib 助力打造多语言知识库与智能素材中心