AGC014D Black and White Tree

[agc014d] Black and White Tree(玄学树D) Description 有一颗n个点的树,刚开始每个点都没有颜色。 Alice和Bob会轮流对这棵树的一个点涂色,Alice涂白,Bob涂黑,Alice先手。 若最后存在一个白点,使得这个白点所有相邻点都为白色,则Alice胜,否则Bob胜。 请问是先手必胜还是后手必胜。 Input 第一行一个整数n。 接下来n-1行每行两个整数ai,bi,表示有一条边连接ai,bi。 O... 阅读详情

传送门

题意:
给出一棵有N个点的树。开始时,所有点都没被染色。两个人在这棵树上玩游戏。他们轮流操作:选择一个点,如果是先手操作,就把点涂成白色,否则涂成黑色。当所有点都被染色后,对于每一个与黑色点相邻的白色点,同时染成黑色。如果还有白点,先手胜,否则后手胜。两个人都采取最优策略,求出胜利者。

题解:
我们证明一下如果后手胜当且仅当这棵树是一个完全匹配。
先证充分性:先手选择一个点,后手选择该点的匹配即可。
再证必要性:如果不是完全匹配,那么一定有一个没匹配到的点,就让它为根。我们要找到父亲只有一个儿子的叶节点。如果没有,显然不是完全匹配,先手可以直接选择父亲,那么后手就GG了。然后先手选父亲,后手选儿子,否则先手一定会被后手染色。最后一定剩下一个点,让先手操作即可。
我也不知道我有没有把充分和必要写反QAQ

代码:

#include<cstdio>
#include<algorithm>
#define maxn 100005
using namespace std;
int n,ma[maxn];
struct node { int v; node *nxt; } edge[maxn*2],*head[maxn],*ncnt;
void addedge(int u,int v)
{
	ncnt++;
	ncnt->v=v,ncnt->nxt=head[u];
	head[u]=ncnt;
}
void dfs(int u,int fa)
{
	for(node *p=head[u];p;p=p->nxt)
	{
		int v=p->v;
		if(v==fa) continue;
		dfs(v,u);
		if(!ma[v])
		{
			if(ma[u]) { printf("First\n"); exit(0); }
			ma[u]=v,ma[v]=u;
		}
	}
}
int main()
{
	ncnt=&edge[0];
	scanf("%d",&n);
	for(int i=1;i<n;i++)
	{
		int u,v;
		scanf("%d%d",&u,&v);
		addedge(u,v); addedge(v,u);
	}
	dfs(1,0);
	printf("%s\n",ma[1]?"Second":"First");
}
CodeForces1046B Hyperspace Highways 传送门 题意: N个点,M条边,每一个环上的点两两有边相连。q次询问两点间最短距离。 题解: 构造圆方树,那么两点间距离感性认知一下就可以发现是树上两点间距离的一半。然后 dist(u,v)=(dep[u]+dep[v]-2*dep[lca])/2即可。 继续存板子。 代码: #include<cstdio> #include<algorithm> #define maxn... 阅读详情

相关推荐

oj-【基础图论】最优布线问题

题目描述 学校有n台计算机,为了方便数据传输,现要将它们用数据线连接起来。两台计算机被连接是指它们中间有数据线连接。由于计算机所处的位置不同,因此不同的两台计算机的连接费用往往是不同的。 当然,如果将任意两台计算机都用数据线连接,费用将是相当庞大的。 为了节省费用,我们采用数据的间接传输手段,即一台计算机可以间接的通过若干台计算机(作为中转)来实现与另一台计算机的连接。 现在由你负责连接这些计...

dogeding233 1425

[AGC014D] Black and White Tree(树形DP,博弈)

每次找到所有叶子节点,把它们的父亲染白,自己染黑。这个时候染完的叶子节点及其父亲节点对树的其他部分已无影响 ,可以直接删掉。 那么只需要判断树的其他部分是否有先手必胜策略即可。用递归遍历。 边界条件:若树为单一节点先手必胜。 代码: #include<iostream> #include<cstdio> using namespace std; const int N=1e5+5; struct Edge{ int v,nxt; }e[N<<1]; int n,f

Edward The Bunny 的博客 422

S32K144后门密钥实战:如何用JLINK脚本绕过复位陷阱更新加密固件

本文详细介绍了在S32K144微控制器上,如何利用JLINK脚本绕过调试器默认复位陷阱,实现通过后门密钥安全更新加密固件的实战方案。针对汽车电子现场维护中常见的“解锁-复位-锁定”循环问题,文章提供了完整的JLinkScript定制方法、批处理工具及故障排除指南,帮助工程师高效完成固件升级。

weixin_29175469的博客 143

[agc014d]Black and White Tree

前言看到这种题直觉是树的最大匹配,如果是比赛直接打毫无疑问。 然后证明了一下也不是很难的样子。 主要是见过类似套路吧。题意两个人轮流给树上节点染色。 先手涂白色,后手涂黑色。 如果最后树上存在一个白色点,与其相连的没有黑点,先手胜,否则后手胜。 请你判断先手必胜还是后手必胜。博弈我们先给出结论:后手要赢,这颗树要有完美匹配。 首先充分性显然,有完美匹配,先手涂什么成白色,你把匹配点涂黑,

不来也不去的一只失忆蝴蝶 1203

单目和多目视觉统一标定

单目和多目视觉统一标定 一.单目视觉标定 在图像测量过程以及机器视觉应用中,为确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,必须建立相机成像的几何模型,这些几何模型参数就是相机参数。在大多数条件下这些参数必须通过实验与计算才能得到,这个求解参数的过程就称之为相机标定(或摄像机标定)。无论是在图像测量或者机器视觉应用中,相机参数的标定都是非常关键的环节,其标定结果的精度及算法的稳定性直接影响相机工作产生结果的准确性。因此,做好相机标定是做好后续工作的前提,提高标定精度是科研工作的重点所在

吴建明wujianming_110117 2911

OpenCV2.4.9+vs2012配置

下载OpenCV2.4.9。 下载地址:http://opencv.org/downloads.html2.下载后,解压。 请记住解压路径,后面根据自己的解压路径进行配置。我的路径是E:\ 3.配置环境变量 win7系统:(计算机-属性-高级系统设置-高级-环境变量) 1)编辑系统变量Path:添加E:\opencv\build\x86\vc11\bin; 2)添加/编辑用户变量P

sybil_w的博客 971

Atcoder 【agc014d】Black and White Tree

Description 有一颗n个点的树,刚开始每个点都没有颜色。 Alice和Bob会轮流对这棵树的一个点涂色,Alice涂白,Bob涂黑,Alice先手。 若最后存在一个白点,使得这个白点所有相邻点都为白色,则Alice胜,否则Bob胜。 请问是先手必胜还是后手必胜。 Input 第一行一个整数n。 接下来n-1行每行两个整数ai,bi,表示有一条边连接ai,bi。 Output 若先手必胜,输出"First"(不含引号),否则输出"Second"(不含引号)。 Solution 随便搞搞.

tylon2006的博客 289

Fortran环境配置:VS2022+Intel oneAPI安装全流程指南

Fortran环境配置:VS2022+Intel oneAPI安装全流程指南

shuyisuisuinian的博客 2万+

[AGC014D]Black and White Tree

题目地址: AGC014D 题意: 给你一棵树,两个人轮流在上面染色,每个人每次会把一个节点染成黑色或者白色,当所有点都被染了色后,如果存在一个白色的节点,它的所有相邻的节点均为白色,则先手胜,否则后手胜,问先手必胜还是后手必胜。 题解: 考场上想出了一种乱搞做法: 显然若有一个节点,它有两个以上的儿子是叶子节点,那么先手染这个点为白色就必胜,我们称这种点为必胜节点。 然后我们考虑这...

ezoixx130's Blog 2415

Star CCM+中衍生零部件下的阈值应用与区域内删除目标网格

同样的在绘制网格结束后,有时出现负体积网格或质量差的网格,为了节约时间成本,可能会选择将负体积的网格或质量差的网格删除。弹出相应的窗口,在窗口中选择相应的区域①,选择标量函数②(此处以网格体积变化为例),选择模型③,设置阈值④,选择No Dispalyer,会根据需求选择显示,最后点击Create⑥完成创建。此处以温度为例,若出现温度异常点,首先在①栏中勾选Function,然后在下面点击⑤Select,在弹出的Function窗口中选择温度场函数,再点击④Identify,查找温度异常网格数量。

2201_75375391的博客 2222

操作系统课程项目 OS project —— Pintos from Project 1 to Project 3

Pintos Project 陪伴我们操作系统课程大半个学期了…… 虽然做了这么长时间,个人能力有限,pintos代码,看过的可能也就看懂了一半吧,更不用说没看过的了…… 但是也找到了一些有价值的资料,整理一下,供后辈们参考…… 关于环境的问题,最好是用ubuntu 16.04 windows用户不要折腾装双系统了,特别是win10,动不动更新一下,说不定双系统就出问题了,linux...

Deserted Land 8554

2017国家集训队作业[agc014d]Black and White Tree

2017国家集训队作业[agc014d]Black and White Tree 题意: ​ 有一颗n个点的树,刚开始每个点都没有颜色。Alice和Bob会轮流对这棵树的一个点涂色,Alice涂白,Bob涂黑,Alice先手。若最后存在一个白点,使得这个白点所有相邻点都为白色,则Alice胜,否则Bob胜。请问是先手必胜还是后手必胜。(点数\(N\le10^5\)) 题解: ​ 显然先手...

andy_zeng123456的博客 197

openclaw本地模型对接

使用是官方推荐的一种集成方式,它可以简化配置过程。但由于您的系统环境和之前复杂的配置历史,我为您梳理了一个核心流程,并增加了关键的“事后检查”步骤,以确保能从根本上解决问题。

suny8的专栏 2463

题解:AT_agc014_d [AGC014D] Black and White Tree

题解:AT_agc014_d [AGC014D] Black and White Tree

weixin_73489612的博客 458

『MaxKB 2.x 开发环境搭建』在Windows下运行最新源码的完整步骤

本文将详细介绍如何在Windows系统中完成MaxKB最新版(2.x)开发环境的搭建,包括前端、后端以及数据库的配置,确保开发者能够顺利启动项目。

老陈聊架构 586

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

[agc014d] Black and White Tree

Description ​ 有一颗n个点的树,刚开始每个点都没有颜色。 ​ Alice和Bob会轮流对这棵树的一个点涂色,Alice涂白,Bob涂黑,Alice先手。 ​ 若最后存在一个白点,使得这个白点所有相邻点都为白色,则Alice胜,否则Bob胜。 ​ 请问是先手必胜还是后手必胜。 Input ​ 第一行一个整数n。 ​ 接下来n-1行每行两个整数ai,bi,表示有一条边连接ai,bi。 O...

weixin_30687587的博客 157

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

AT2376 [AGC014D] Black and White Tree

https://www.luogu.com.cn/problem/AT2376 先考虑叶子结点,发现,如果叶子结点的父亲是白点,那么叶子结点必须是黑点, 然后这一对点就可以删掉了 dfs跑一遍即可 code: #include<bits/stdc++.h> #define N 400050 using namespace std; struct edge { int v, nxt; } e[N << 1]; int p[N], eid; void init() { m

lahlah的博客 334

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

AGC 014 D Black and White Tree - 树dp

结论是后手必胜当且进当存在完美匹配。 #include&lt;iostream&gt; #include&lt;cstring&gt; #include&lt;cstdio&gt; #include&lt;algorithm&gt; #include&lt;vector&gt; #define gc getchar() #define N 100010 #define pb push_back ...

Mys_C_K的博客 234

AT2376-[AGC014D]Black and White Tree【结论,博弈论】

正题 题目链接:https://www.luogu.com.cn/problem/AT2376 题目大意 给出nnn个点的一棵树,先后手轮流选择一个未染色的点染上白色(先手)/黑色(后手),如果最后有一个白色的点连接的都是白色的点则先手获胜,否则后手获胜。求是否先手必胜。 1≤n≤1051\leq n\leq 10^51≤n≤105 解题思路 结论就是如果这棵树存在完全匹配那么就是后手必胜,因为后手可以每次选择先手选择的那个点的匹配点这样先手永远不可能获胜。 否则肯定存在一种方案使得存在一个叶子没有完全

QuantAsk 326

AtCoder Grand Contest 014 D:Black and White Tree

题目传送门:https://agc014.contest.atcoder.jp/tasks/agc014_d 题目翻译 给你一棵树,每次任选一个点染色,先手染白色,后手染黑色。如果最后存在一个白色的点与其相连的点都是白色的,就算先手胜利,否则后手胜利。两人绝顶聪明,\(n\leqslant 10^5\) 题解 假设这颗树存在完美匹配,那么不管先手染哪一个点,后手都能将与其匹配的点染成黑色...

aga28832的博客 292

AtCoder Grand Contest 014做题记录

这场AtCoder的题目以结论题为主 代码都很短,想法也都很巧妙A - Cookie Exchanges按照题目描述暴力即可 关键在于时间复杂度的证明 对于三个数aa,bb,cc,不妨设a≤b≤ca\le b\le c,变换等价于对0,b−a,c−a0,b-a,c-a三个数变换之后再加上aa,即三个数减去最小值后对步数没有影响 不妨令减去aa之后的三个数为00,bb,cc,变换后三个数变成b

HbFS- 1055
上一篇: AGC014C Closed Rooms
下一篇: AGC014E Blue and Red Tree
dogeding
博客等级 码龄10年 31粉丝 109原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值