VK Cup 2012 Finals E
来源:互联网 发布:驼峰命名 c语言 编辑:程序博客网 时间:2024/04/24 11:36
http://codeforces.com/contest/212/problem/E
才做了一道题,就调试了我一个下午的时间,太弱了;
题意: 就是给定最多n个点的树,要求除去某个点后,在剩下的至少两个联通分量中,分配到两个集合,着两个集合就是对应题目给定的两个餐厅
思路:枚举以每个点为根,然后dp下就可以了
#include <iostream>#include <cstdio>#include <vector>#include <algorithm>#include <cstring>using namespace std;const int maxn=5010;vector<int> g[maxn];int dp[maxn],n;bool mark[maxn][maxn],ans[maxn];int s[maxn];void dfs(int u,int fa){ mark[u][0]=1; for(int i=0;i<g[u].size();i++) { if(g[u][i]==fa) continue; int v=g[u][i]; dfs(v,u); for(int j=n-1;j>=0;j--) if(mark[u][j]) mark[u][j+dp[v]+1]=1; dp[u]+=dp[v]+1; } for(int j=n-1;j>=0;j--) if(mark[u][j]&&j+n-1-dp[u]<n) mark[u][j+n-1-dp[u]]=1; for(int j=n-1;j>=0;j--) if(mark[u][j]) ans[j]=1;}int main(){ int a,b; while(scanf("%d",&n)==1) { for(int i=1;i<n;i++) { scanf("%d%d",&a,&b); g[a].push_back(b); g[b].push_back(a); } memset(dp,0,sizeof(dp)); memset(ans,0,sizeof(ans)); dfs(1,-1); /* for(int i=1;i<=n;i++) cout<<ans[i]<<" "; cout<<endl;*/ int k=0; for(int i=1;i<n-1;i++) if(ans[i]) s[k++]=i; printf("%d\n",k); for(int i=0;i<k;i++) printf("%d %d\n",s[i],n-1-s[i]); for(int i=1;i<=n;i++) g[i].clear(); } return 0;}
- VK Cup 2012 Finals E
- VK Cup 2012 Qualification Round 1 E
- Codeforces Round #423 (Div. 1, rated, based on VK Cup Finals) E. Rusty String(fft)
- Codeforces Round #424 (Div. 2, rated, based on VK Cup Finals) E Cards Sorting
- VK Cup 2015 - Finals, online mirror
- Codeforces Round #423 (Div. 2, rated, based on VK Cup Finals) E. DNA Evolution 分组+树状数组
- Codeforces Problemset 212D(VK Cup 2012 Finals (unofficial online-version))
- 【dp】VK Cup 2012 Qualification Round 1 ——E
- VK Cup 2012 Qualification Round 1 ( E Phone Talks)
- VK Cup 2012 Qualification Round 2 E 无语凝噎
- 【VK Cup 2012】final
- VK Cup 2015 - Finals F. Clique in the Divisibility Graph
- Bubble Cup 9 - Finals E. 搜索
- VK Cup 2012 Round 1
- VK Cup 2012 Round 2
- VK Cup 2012 Qualification Round 2部分题解(C,D,E)
- 【深搜+模拟】VK Cup 2012 Round 1-E. Polycarpus the Safecracker
- VK Cup 2012 Qualification Round 2--E. Zebra Tower 离散化+优先队列
- Linux查看系统语系(编码)命令
- 如何通过超级终端 利用串口实现arm板子和pc互相发送文件???
- error C2065: 'IDD_Prop1' : undeclared identifier error
- platform总线、设备与驱动
- ip unnumbered 简介
- VK Cup 2012 Finals E
- 自动生成hibernate.hbm.xml
- 宏定义的使用
- window phone 7 开发学习笔记(一)
- asp.net中repeater记录的换行解决方案
- 结构体字节对齐
- wince6 2416 sd卡显示名称修改
- gcc常见参数说明
- GMT安装