[agc014d] Black and White Tree】的更多相关文章

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…
题目传送门:https://agc014.contest.atcoder.jp/tasks/agc014_d 题目翻译 给你一棵树,每次任选一个点染色,先手染白色,后手染黑色.如果最后存在一个白色的点与其相连的点都是白色的,就算先手胜利,否则后手胜利.两人绝顶聪明,\(n\leqslant 10^5\) 题解 假设这颗树存在完美匹配,那么不管先手染哪一个点,后手都能将与其匹配的点染成黑色.也就是说,存在完美匹配的话后手一定胜利. 假设不存在完美匹配,先手每次可以选择一个叶子结点的父亲染色,然后后…
题目链接:http://agc014.contest.atcoder.jp/tasks/agc014_d 题意:有一棵树先手涂白色,后手涂黑色,直到不能再涂为止.涂完后再把所有黑色直接相邻的白色都变成黑色. 如果最后还有白色那么是先手赢,否则是后手赢. 题解:先不管这是一棵树直接放在一条直线上考虑,显然奇数个点是先手赢,偶数个点是后手赢.因为,想要有 白色一定要白色多涂一次才行,这是最起码的. 然后再放到树上考虑.以一个点为根节点,如果子节点的个数为奇数的子树超过两条那么肯定是先手赢,因为算 上…
构造题都是神仙题 /kk ARC066C Addition and Subtraction Hard 首先要发现两个性质: 加号右边不会有括号:显然,有括号也可以被删去,答案不变. \(op_i\)和\(A_{i+1}\)之间只会有一个括号:有多个括号的话只保留最外边那个,答案不变. 然后就可以定义状态:\(dp_{i,j}\)表示前\(i\)个数,还有\(j\)个未闭合的左括号,得到的最大答案. 由于只有减号右边有括号,所以只要知道左边有几个未闭合的左括号,就可以知道自己的贡献是\(1\)还是…