Description

​ 有一颗n个点的树,刚开始每个点都没有颜色。

​ Alice和Bob会轮流对这棵树的一个点涂色,Alice涂白,Bob涂黑,Alice先手。

​ 若最后存在一个白点,使得这个白点所有相邻点都为白色,则Alice胜,否则Bob胜。

​ 请问是先手必胜还是后手必胜。

Input

​ 第一行一个整数n。

​ 接下来n-1行每行两个整数ai,bi,表示有一条边连接ai,bi。

Output

​ 若先手必胜,输出"First"(不含引号),否则输出"Second"(不含引号)。

Sample Input

3
1 2
2 3

Sample Output

First

HINT

2<=n<=10^5

保证输入为一棵n个点的树

本题采用subtask。存在10%10%的数据满足n≤8n≤8。

Sol

后手必胜的条件是这棵树有完美匹配,证明大概是:如果先手选了一个叶子的父亲并且和一个叶子匹配,若叶子个数大于2那么先手已经赢了。如果只有一个儿子的话就等同于把这两个点删掉继续进行这个过程。我们通过dfs进行这样的判断。

Code

#include <bits/stdc++.h>
using namespace std;
int n,x,y;vector<int>e[100005];
int dfs(int x,int fa)
{
int tot=0;
for(int i=0;i<e[x].size();i++) if(e[x][i]!=fa) tot+=dfs(e[x][i],x);
if(tot>=2) return tot;else return tot^1;
}
int main()
{
scanf("%d",&n);
for(int i=1;i<n;i++) scanf("%d%d",&x,&y),e[x].push_back(y),e[y].push_back(x);
puts(dfs(1,0)?"First":"Second");
}

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

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

    2017国家集训队作业[agc014d]Black and White Tree 题意: ​ 有一颗n个点的树,刚开始每个点都没有颜色.Alice和Bob会轮流对这棵树的一个点涂色,Alice涂白,B ...

  2. [agc014d] Black and White Tree(玄学树D)

    Description 有一颗n个点的树,刚开始每个点都没有颜色. Alice和Bob会轮流对这棵树的一个点涂色,Alice涂白,Bob涂黑,Alice先手. 若最后存在一个白点,使得这个白点所有相邻 ...

  3. Codeforces 260D - Black and White Tree

    260D - Black and White Tree 思路:把两种颜色先按值sort一下,最小值肯定是叶子,然后把这个叶子和另外一中颜色的一个最小值的节点连接起来,再把这个节点变成叶子,把值减掉就可 ...

  4. AtCoder 2376 Black and White Tree

    D - Black and White Tree Time limit : 2sec / Memory limit : 256MB Score : 900 points Problem Stateme ...

  5. HDU 5905 Black White Tree(树型DP)

    题目链接  Black White Tree 树型DP,设$f[i][j]$为以$i$为根的子树中大小为$j$的连通块中可以包含的最小黑点数目. $g[i][j]$为以$i$为根的子树中大小为$j$的 ...

  6. 【agc014d】Black and White Tree

    又是被虐的一天呢~(AC是不可能的,这辈子不可能AC的.做题又不会做,就是打打暴力,才能维持骗骗分这样子.在机房里的感觉比回家的感觉好多了!里面个个都是大佬,个个都是死宅,我超喜欢在里面的!) (↑以 ...

  7. AtCoder Grand Contest 014 D:Black and White Tree

    题目传送门:https://agc014.contest.atcoder.jp/tasks/agc014_d 题目翻译 给你一棵树,每次任选一个点染色,先手染白色,后手染黑色.如果最后存在一个白色的点 ...

  8. Atcoder D - Black and White Tree(树dp+博弈)

    题目链接:http://agc014.contest.atcoder.jp/tasks/agc014_d 题意:有一棵树先手涂白色,后手涂黑色,直到不能再涂为止.涂完后再把所有黑色直接相邻的白色都变成 ...

  9. AtCoder刷题记录

    构造题都是神仙题 /kk ARC066C Addition and Subtraction Hard 首先要发现两个性质: 加号右边不会有括号:显然,有括号也可以被删去,答案不变. \(op_i\)和 ...

随机推荐

  1. getpass密码隐藏

    使用getpass模块对输入的字符进行隐藏输入 #-*- coding:utf-8 -*- __author__ = "MuT6 Sch01aR" import getpass u ...

  2. Node.js实用知识点

    本文介绍如何使用nodejs 简单的HttpServer 调试nodejs 基础路由 nodejs配置开发和生产环境 nodejs核心模块一览 express用法 文件I/O nodejs模块 nod ...

  3. Python 小知识点(1)

    1.Python命名规则------>下划线连接    girl_of_wfb="lgl" 2.常量-----名称全大写->WFB="WFaceBoss&qu ...

  4. Apache Shiro 权限框架

    分享一个视屏教程集合 http://www.tudou.com/home/konghao/item 1.Shiro Apache Shiro是一个强大且易用的Java安全框架,执行身份验证.授权.密码 ...

  5. java 调用webservice (asmx) 客户端开发示例

    这是本人第一次写博客,其实就是自己做个笔记,写的很粗糙,也希望能给跟我遇到同样问题的你一点帮助. 因为最近有个项目要调用webservice接口,之前接触的都是Java开发服务端和客户端的接口,开发前 ...

  6. node.js开发指南读书笔记(1)

    3.1 开始使用Node.js编程 3.1.1 Hello World 将以下源代码保存到helloworld.js文件中 console.log('Hello World!'); console.l ...

  7. OSCache-JSP页面缓存(1)

    一.OSCache提供的缓存标签 这是OSCache提供的标签库中最重要的一个标签,包括在标签中的内容将应用缓存机制进行处理,处理的方式将取决于编程者对cache标签属性的设置. 第一次请求到达时,标 ...

  8. Python的Flask框架使用Redis做数据缓存的配置方法

    flask配置redis 首先得下载flask的缓存插件Flask-Cache,使用pip下载. sudo pip install flask_cache 为应用扩展flask_cache   app ...

  9. EHR 1.172无法启动数据库,提示磁盘空间不足 设置非归模式

    数据库无法访问,提示ORA-09817错误: 1.查看磁盘空间df -h,使用率100%,看出dbs夹占184G    在oracle的OEM管理器中有可视化的日志展现出,当我们手工清除archive ...

  10. 简单的互斥同步方式——synchronized关键字详解

    目录 1. 关于synchronized关键字 2. synchronized的原理和实现细节 2.1 synchronized可以用在那些地方 2.2 synchronized是如何实现线程互斥访问 ...