AT2376-[AGC014D]Black and White Tree【结论,博弈论】
正题
题目链接:https://www.luogu.com.cn/problem/AT2376
题目大意
给出nnn个点的一棵树,先后手轮流选择一个未染色的点染上白色(先手)/黑色(后手),如果最后有一个白色的点连接的都是白色的点则先手获胜,否则后手获胜。求是否先手必胜。
1≤n≤1051\leq n\leq 10^51≤n≤105
解题思路
结论就是如果这棵树存在完全匹配那么就是后手必胜,因为后手可以每次选择先手选择的那个点的匹配点这样先手永远不可能获胜。
否则肯定存在一种方案使得存在一个叶子没有完全匹配,只要先手最后封锁这个叶子就好了。
时间复杂度:O(n)O(n)O(n)
code
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=1e5+10;
struct node{int to,next;
}a[N<<1];
int n,tot,ls[N],f[N][2];
void addl(int x,int y){a[++tot].to=y;a[tot].next=ls[x];ls[x]=tot;return;
}
void dfs(int x,int fa){f[x][0]=1;for(int i=ls[x];i;i=a[i].next){int y=a[i].to;if(y==fa)continue;dfs(y,x);f[x][1]&=f[y][1];f[x][1]|=f[x][0]&f[y][0];f[x][0]&=f[y][1];}return;
}
int main()
{scanf("%d",&n);for(int i=1;i<n;i++){int x,y;scanf("%d%d",&x,&y);addl(x,y);addl(y,x);}dfs(1,0);if(f[1][1])printf("Second");else printf("First");return 0;
}
AT2376-[AGC014D]Black and White Tree【结论,博弈论】相关推荐
- [agc014d] Black and White Tree(玄学树D)
Description 有一颗n个点的树,刚开始每个点都没有颜色. Alice和Bob会轮流对这棵树的一个点涂色,Alice涂白,Bob涂黑,Alice先手. 若最后存在一个白点,使得这个白点所有相邻 ...
- [AGC014D] Black and White Tree(树形DP,博弈)
每次找到所有叶子节点,把它们的父亲染白,自己染黑.这个时候染完的叶子节点及其父亲节点对树的其他部分已无影响 ,可以直接删掉. 那么只需要判断树的其他部分是否有先手必胜策略即可.用递归遍历. 边界条件: ...
- 【CodeForces - 260D】Black and White Tree (思维构造,猜结论,细节,构造一棵树)
题干: The board has got a painted tree graph, consisting of n nodes. Let us remind you that a non-dire ...
- 博弈论--耶鲁大学公开课
博弈论 一.五个入门结论 博弈论研究策略形式 策略形式: 行为影响结果,结果不仅取决于你的行为,还取决于其他人的行为 博弈的要素: people care about(动机.收益) 游戏1.成绩博弈: ...
- BST、AVL、BTree、B+Tree、B*Tree、23Tree、234Tree、TTree、RBTree、LLRBTree、AATree、SplayTree、Treap、无旋Treap、scap
喜欢这篇文章吗?喜欢的话去看博主的置顶博客,即可依据分类找到此文章的原版得到更好的体验, 图片及代码显示的问题,笔者深感抱歉,想要更好的体验去原博文即可. title: tree mathjax: t ...
- 「Note」Math not for OI
大家以我为戒 千万不要这么学 oi ( todolist 会越鸽越长的 高代那部分莫名其妙写了一大堆 其实我写完之后也没复习过几遍.. 而且千万不要抄看起来很厉害实际上也很厉害的东西抄爽了,, 更不要 ...
- Tkinter Treeview tag_configure失效问题
Tkinter Treeview tag_configure失效问题 最近在交付一个带界面的工具软件时出现了一点问题,把源码拿到测试机上编译时发现界面中的Treeview不带颜色,在我自己的开发环境是 ...
- 乌鸦与树(crow)
乌鸦crow 示例 HTML CSS JS 更多有趣示例 尽在 知屋安砖社区 示例 HTML <script src="https://code.jquery.com/jquery-1 ...
- iOS开发系列--通讯录、蓝牙、内购、GameCenter、iCloud、Passbook系统服务等等
--系统应用与系统服务 iOS开发过程中有时候难免会使用iOS内置的一些应用软件和服务,例如QQ通讯录.微信电话本会使用iOS的通讯录,一些第三方软件会在应用内发送短信等.今天将和大家一起学习如何使用 ...
最新文章
- 你真的懂switch吗?聊聊switch语句中的块级作用域
- 蓝松短视频经验分享----抠图和动画设计
- 台式机计算机操作系统怎么看,电脑操作系统是32位还是64位的怎么查看
- SQLserver删除某数据库中所有表 方法 二
- ABAP的OPEN SQL和Hybris Commerce的Flexible Search简介
- Maven工程的多模块
- 机器学习问题总结(02)
- Linux网络服务器epoll模型的socket通讯的实现(一)
- 详解FSMO的五种角色
- 日志平台查询异常,没有打印异常信息
- 软件测试前景和发展方向
- 概率 无穷数列求和公式
- html给图片添加蒙版,如何使用ps给图片加蒙版 ps给图片添加蒙版的教程
- Java多线程学习(吐血超详细总结)
- TensorFlow - 正弦曲线
- svm神经网络葡萄酒matlab,SVM神经网络的数据分类预测--葡萄酒种类识别
- 若干思考:从如何确定投资者是风险偏好者、风险中性者还是风险规避者 到 上学真的无用吗的思考?
- 百度地图开发:H5获取GPS-wg84经纬度与百度定位API的偏差测试
- 因无聊用python写了个爬取蓝奏云直链的爬虫(含注释并包装为函数)
- 360智能摄像机:超市防盗安全员
热门文章
- mysql between 查询不出来_mysql的语句优化
- clickhouse建库_ClickHouse高性能数据库
- 如何备份服务器日志到其他服务器_KIWI Syslog日志服务器搭建及配置
- 下图为双总线结构机器的数据通路_海康机器人为物流加码:进击吧,双11新“打工人”...
- 实现图片打乱_疫情过后,是否打乱了你前进的脚步?面对现状,你将如何开展新的征程?...
- 查询程序崩溃日志_PC 崩溃报告途径 amp; 临时解决方法
- 网站logo放在服务器,自己建网站如何设计网站LOGO
- 端口和进程的关系(详解)
- C++实现dijkstra单源最短路径
- [数据结构-严蔚敏版]P95矩阵压缩-特殊矩阵的存储(对称矩阵,三角矩阵)