2017国家集训队作业[agc014d]Black and White Tree 题意: ​ 有一颗n个点的树,刚开始每个点都没有颜色.Alice和Bob会轮流对这棵树的一个点涂色,Alice涂白,Bob涂黑,Alice先手.若最后存在一个白点,使得这个白点所有相邻点都为白色,则Alice胜,否则Bob胜.请问是先手必胜还是后手必胜.(点数\(N\le10^5\)) 题解: ​ 显然先手使用贪心的策略,使后手被迫操作.(别听这个沙茶,他推了半小时才发现)观察发现若一个点有多个儿子是叶子节点,此时…
Description ​ 有一颗n个点的树,刚开始每个点都没有颜色. ​ Alice和Bob会轮流对这棵树的一个点涂色,Alice涂白,Bob涂黑,Alice先手. ​ 若最后存在一个白点,使得这个白点所有相邻点都为白色,则Alice胜,否则Bob胜. ​ 请问是先手必胜还是后手必胜. Input ​ 第一行一个整数n. ​ 接下来n-1行每行两个整数ai,bi,表示有一条边连接ai,bi. Output ​ 若先手必胜,输出"First"(不含引号),否则输出"Secon…
Description 有一颗n个点的树,刚开始每个点都没有颜色. Alice和Bob会轮流对这棵树的一个点涂色,Alice涂白,Bob涂黑,Alice先手. 若最后存在一个白点,使得这个白点所有相邻点都为白色,则Alice胜,否则Bob胜. 请问是先手必胜还是后手必胜. Input 第一行一个整数n. 接下来n-1行每行两个整数ai,bi,表示有一条边连接ai,bi. Output 若先手必胜,输出"First"(不含引号),否则输出"Second"(不含引号).…
260D - Black and White Tree 思路:把两种颜色先按值sort一下,最小值肯定是叶子,然后把这个叶子和另外一中颜色的一个最小值的节点连接起来,再把这个节点变成叶子,把值减掉就可以了. 如下图: 代码1: #include<bits/stdc++.h> using namespace std; ; struct node { int val,id; bool operator <(node &a) { return val<a.val; } }a[N]…
D - Black and White Tree Time limit : 2sec / Memory limit : 256MB Score : 900 points Problem Statement There is a tree with N vertices numbered 1 through N. The i-th of the N−1 edges connects vertices ai and bi. Initially, each vertex is uncolored. T…
题目链接  Black White Tree 树型DP,设$f[i][j]$为以$i$为根的子树中大小为$j$的连通块中可以包含的最小黑点数目. $g[i][j]$为以$i$为根的子树中大小为$j$的连通块中可以包含的最大黑点数目. $F[i]$为大小为$i$的连通块中可以包含的最小黑点数目 $G[i]$为大小为$j$的连通块中可以包含的最大黑点数目 做一遍树上DP即可. #include <bits/stdc++.h> using namespace std; #define rep(i,…
又是被虐的一天呢~(AC是不可能的,这辈子不可能AC的.做题又不会做,就是打打暴力,才能维持骗骗分这样子.在机房里的感觉比回家的感觉好多了!里面个个都是大佬,个个都是死宅,我超喜欢在里面的!) (↑以上是正经的分割线) Description 有一颗n个点的树,刚开始每个点都没有颜色. Alice和Bob会轮流对这棵树的一个点涂色,Alice涂白,Bob涂黑,Alice先手. 若最后存在一个白点,使得这个白点所有相邻点都为白色,则Alice胜,否则Bob胜. 请问是先手必胜还是后手必胜. Inp…
不知道算不算博弈 很妙的贪心,一直在想SG函数结果... 首先从大到小排个序,然后考虑当前的人要怎么选:如果不选最后一段,那么另一人会选,这样不利于当前的人,所以每个人一定会选最后一段 设f[i]为要选i了,先手的最大差,显然是max(a[i]-f[i-1],f[i-1]),就是先手只选了最后一个和先手选了i,i-1.... #include<iostream> #include<cstdio> #include<algorithm> using namespace s…
这个题看上去本来不好处理,然而善意的题面已经基本告诉你做法了,小时候玩的那个游戏就是代码的核心.动动脑子想想,如果长和宽的积是奇数,那么一定要先手,如果是偶数,那么后手就会获胜. 好了,那么怎么处理对称情况呢,随便画一个小棋盘试一试,很容易得出是x-i+1和m-y+1.这之后就是颜色的问题了,因为题目有颜色的限制和对方耍赖这一操作,所以我们每一次放棋子的颜色也有要求. 再画一个小棋盘模拟一下,容易得出是偶数时要放不一样的,奇数时放一样的. #include<iostream> #include…
题目传送门:https://agc014.contest.atcoder.jp/tasks/agc014_d 题目翻译 给你一棵树,每次任选一个点染色,先手染白色,后手染黑色.如果最后存在一个白色的点与其相连的点都是白色的,就算先手胜利,否则后手胜利.两人绝顶聪明,\(n\leqslant 10^5\) 题解 假设这颗树存在完美匹配,那么不管先手染哪一个点,后手都能将与其匹配的点染成黑色.也就是说,存在完美匹配的话后手一定胜利. 假设不存在完美匹配,先手每次可以选择一个叶子结点的父亲染色,然后后…