bzoj 3391: [Usaco2004 Dec]Tree Cutting网络破坏
来源:互联网 发布:spinner控件绑定数据 编辑:程序博客网 时间:2024/05/29 15:29
→题目链接←
【想说的话】
果然我还是比较喜欢树
【题解】
dfs一遍计算出以1为根,每个点的子树节点和,最大的子树节点数
然后1到n扫一遍,注意由那个点的父亲组成的子树,n-sum[x]就行了
【代码】
#include<bits/stdc++.h>#define MAXN 10010typedef long long ll;using namespace std;inline int rd(){int x=0,y=1;char c=getchar();while(c<'0' || c>'9'){if(c=='-')y=-y;c=getchar();}while(c>='0'&&c<='9')x=x*10+c-'0',c=getchar();return x*y;}int n;vector<int>v[MAXN];int sum[MAXN],Max[MAXN];void dfs(int x,int fa){sum[x]=1;for(int i=0; i<v[x].size(); i++){int to=v[x][i];if(to==fa)continue;dfs(to,x);sum[x]+=sum[to];Max[x]=max(Max[x],sum[to]);}}int main(){n=rd();for(int i=1; i<n; i++){int x=rd(),y=rd();v[x].push_back(y);v[y].push_back(x);}dfs(1,0);bool f=false;for(int i=1; i<=n; i++){if(max(Max[i],n-sum[i])<=n/2){f=true;printf("%d\n",i);}}if(!f)puts("NONE");return 0;}
阅读全文
0 0
- bzoj 3391: [Usaco2004 Dec]Tree Cutting网络破坏
- bzoj3391: [Usaco2004 Dec]Tree Cutting网络破坏
- bzoj3391 [Usaco2004 Dec]Tree Cutting网络破坏(dfs)
- bzoj 3389 [Usaco2004 Dec]Cleaning Shifts安排值班
- 【BZOJ】3390: [Usaco2004 Dec]Bad Cowtractors牛的报复
- 【BZOJ】3389: [Usaco2004 Dec]Cleaning Shifts安排值班
- bzoj 3390: [Usaco2004 Dec]Bad Cowtractors牛的报复
- bzoj3388 [ Usaco2004 Dec ]
- BZOJ 3390: [Usaco2004 Dec]Bad Cowtractors牛的报复|最大生成树kruskal
- POJ 2374/bzoj 3387: [Usaco2004 Dec]Fence Obstacle Course栅栏行动
- bzoj 3357: [Usaco2004]等差数列
- Tree Cutting
- bzoj3389 [Usaco2004 Dec]Cleaning Shifts安排值班
- bzoj3389: [Usaco2004 Dec]Cleaning Shifts安排值班
- 【bzoj3389】[Usaco2004 Dec]Cleaning Shifts安排值班
- bzoj 3358: [Usaco2004 Jan]洪水
- bzoj 3359: [Usaco2004 Jan]矩形
- 1604 Tree Cutting
- Multiplication Table CodeForces
- BeagleBone Black(UBUNTU)通过USB线联网
- HttpServletRequest获取提交表单参数(五)
- 支持向量机的问题转化与推导
- 二叉树中和为某一值的路径
- bzoj 3391: [Usaco2004 Dec]Tree Cutting网络破坏
- 《红楼梦》的香气韵调
- 160个练手CrackMe-026
- 重定向输出流实现程序日志【20171115练习】
- 输出菱形
- unbuntu install chrome
- Boost智能指针——scoped_ptr
- 九九乘法表的实现
- c++链表的简单操作