博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ACdream 1031 Cut
阅读量:5170 次
发布时间:2019-06-13

本文共 1034 字,大约阅读时间需要 3 分钟。

              题意:给定一棵树,删除一些边,让整棵树被分成多个节点数为偶数的联通块,且联通块尽量多。

                  思路:如果出现连通且节点数为偶数的立即删除这个点与它父节点之间的边,尽量删除即可,因为题目说了保证n为偶数,删了偶数,剩下的还是偶数。

AC代码

#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;#pragma comment(linker, "/STACK:1024000000,1024000000") #define eps 1e-10#define inf 0x3f3f3f3f#define PI pair
typedef long long LL;const int maxn = 1e5 + 5;vector
G[maxn];int ans;int dfs(int u, int pre) { int cnt = 0; for(int i = 0; i < G[u].size(); ++i) { int v = G[u][i]; if(v == pre) continue; int w = dfs(v, u); if(w & 1) cnt++; else ans++; } return cnt+1;}int main() { int n; while(scanf("%d", &n) == 1) { for(int i = 1; i <= n; ++i) G[i].clear(); int u, v; for(int i = 0; i < n-1; ++i) { scanf("%d%d", &u, &v); G[u].push_back(v); G[v].push_back(u); } ans = 0; dfs(1, -1); printf("%d\n", ans); } return 0;}
如有不当之处欢迎指出!

转载于:https://www.cnblogs.com/flyawayl/p/8305307.html

你可能感兴趣的文章
体系编程、SOC编程那些事儿
查看>>
mysql索引的艺术
查看>>
IBM RSA 的语言设置
查看>>
《http权威指南》阅读笔记(二)
查看>>
faster r-cnn cudnn版本不兼容问题
查看>>
[置顶] ListBox控件的数据绑定
查看>>
链表插入排序
查看>>
http://blog.csdn.net/yunye114105/article/details/7997041
查看>>
设计模式这个东西 刚刚发现几种模式好像大同小异啊
查看>>
关于 主键和外键
查看>>
python集合的交,差,并,补集合运算汇总
查看>>
校园分期支付的机遇和风险
查看>>
怕忘记-windows 2003服务器安装Node.js NPM
查看>>
一鍵分享(優化后)
查看>>
dcm4che 的依赖无法下载
查看>>
cygwin主要命令
查看>>
多线程存在哪些风险
查看>>
洛谷P2692 覆盖 题解
查看>>
Linux下清理内存和Cache方法见下文:
查看>>
【AngularJs-模块篇-Form篇】
查看>>