Cut 'em all! CodeForces - 982C(贪心dfs)
K - Cut 'em all!
给一棵树 求最多能切几条边使剩下的子树都有偶数个节点
如果n是奇数 那么奇数=偶数+奇数 不管怎么切 都会有奇数
直接打印-1
贪心 如果子树中的点是偶数 就可以直接切了
最后答案要减一 因为原来的树也是偶数个节点 会被统计进去
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std; const int maxn = 1e5 + ;
int res[maxn];
bool vis[maxn];
int ans;
vector<int> G[maxn]; void dfs(int u) {
vis[u] = true;
res[u] = ;
for (int i = ; i < G[u].size(); i++) {
int v = G[u][i];
if (vis[v]) continue;
dfs(v);
res[u] += res[v];
}
if (res[u] & ) return;
res[u] = ;
ans++;
} int main() {
int n;
scanf("%d", &n);
for (int i = , u, v; i < n - ; i++) {
scanf("%d%d", &u, &v);
G[u].push_back(v);
G[v].push_back(u);
}
if (n & ) {
puts("-1");
return ;
}
dfs();
printf("%d\n", ans-);
return ;
}
Cut 'em all! CodeForces - 982C(贪心dfs)的更多相关文章
- Codeforces 982C(dfs+思维)
C. Cut 'em all! time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...
- CodeForces 982 C Cut 'em all!
Cut 'em all! 题意:求删除了边之后,剩下的每一块联通块他的点数都为偶数,求删除的边最多能是多少. 题解:如果n为奇数,直接返回-1,因为不可能成立.如果n为偶数,随意找一个点DFS建树记录 ...
- CF982C Cut 'em all! DFS 树 * 二十一
Cut 'em all! time limit per test 1 second memory limit per test 256 megabytes input standard input ...
- 小黑的镇魂曲(HDU2155:贪心+dfs+奇葩解法)
题目:点这里 题目的意思跟所谓的是英雄就下100层一个意思……在T秒内能够下到地面,就可以了(还有一个板与板之间不能超过H高). 接触这题目是在昨晚的训练赛,当时拍拍地打了个贪心+dfs,果断跟我想的 ...
- 【bzoj3252】攻略 贪心+DFS序+线段树
题目描述 题目简述:树版[k取方格数] 众所周知,桂木桂马是攻略之神,开启攻略之神模式后,他可以同时攻略k部游戏. 今天他得到了一款新游戏<XX半岛>,这款游戏有n个场景(scene),某 ...
- hdu6060[贪心+dfs] 2017多校3
/* hdu6060[贪心+dfs] 2017多校3*/ #include <bits/stdc++.h> using namespace std; typedef long long L ...
- Codeforces --- 982C Cut 'em all! DFS加贪心
题目链接: https://cn.vjudge.net/problem/1576783/origin 输入输出: ExamplesinputCopy42 44 13 1outputCopy1input ...
- Codeforces Round #484 (Div. 2)Cut 'em all!(dfs)
题目链接 题意:给你一棵树,让你尽可能删除多的边使得剩余所有的联通组件都是偶数大小. 思路:考虑dfs,从1出发,若当前节点的子节点和自己的数目是偶数,说明当前节点和父亲节点的边是可以删除的,答案+1 ...
- codeforces 982C Cut 'em all!
题意: 给出一棵树,问最多去掉多少条边之后,剩下的连通分量的size都是偶数. 思路: 如果本来就是奇数个点,那么无论去掉多少条边都不可能成立的. 如果是偶数个点,就进行一次dfs,假设一个点的父亲是 ...
随机推荐
- ASP.NET Core基础1:应用启动流程
先看下ASP.NET Core的启动代码,如下图: 通过以上代码,我们可以初步得出以下结论: 所有的ASP.NET Core程序本质上也是一个控制台程序,使用Program的Main方法作为程序的入口 ...
- v8 GC机制
1.为什么要分代 V8是Chrome浏览器的javascript解释器,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能.你先想想,如果没有分代,那 ...
- 使用Git进行版本管理
参考:http://www.runoob.com/git/git-tutorial.html 一.Git简介 1.Git 和 SVN 比较 (1)GIT是分布式的,SVN不是; (2)GIT把内容按元 ...
- 快速数论变换(NTT)小结
NTT 在FFT中,我们需要用到复数,复数虽然很神奇,但是它也有自己的局限性--需要用double类型计算,精度太低 那有没有什么东西能够代替复数且解决精度问题呢? 这个东西,叫原根 原根 阶 若\( ...
- Linux chmod命令用法
chmod----改变一个或多个文件的存取模式(mode) Linux/Unix 的文件调用权限分为三级 : 文件拥有者.群组.其他.利用 chmod 可以藉以控制文件如何被他人所调用. 使用权限 : ...
- Android为TV端助力 播放视频卡顿问题
问题分析: 1.连接服务器,ping IP 看看有没有丢包 2.写一个只有mediaplayer的Demo,放到同款的盒子或者电视,保证网咯也是一样的情况下,看看Demo卡不卡 如果一直不卡,那有可能 ...
- 以太坊智能合约 Solidity 的常用数据类型介绍
目录 目录 1.数组 1.1.对数组的增删改查操作. 2.String.Bytes.Mapping的使用 3.Enums 和 Structs 的简单应用 4.Ether 单位和 Time 单位 5.A ...
- Python第十一天 异常处理 glob模块和shlex模块 打开外部程序和subprocess模块 subprocess类 Pipe管道 operator模块 sorted函数 os模块 hashlib模块 platform模块 csv模块
Python第十一天 异常处理 glob模块和shlex模块 打开外部程序和subprocess模块 subprocess类 Pipe管道 operator模块 sorted函 ...
- selenium-确定找到的element唯一(三)
在python + selenium 中经常会遇到找到的元素不唯一,导致定位到的元素不是预期的或者定位不到元素 解决方法:只要在页面进行确认找到的元素唯一后,再进行操作 页面确认方法: 1.通过htm ...
- SourceTree下载bitbucket代码
SourceTree安装方法 下载地址:https://www.sourcetreeapp.com/ 列几个安装过程中的注意点: 根URL(Root URL):https://bitbucket.or ...