题意:http://www.lydsy.com/JudgeOnline/problem.php?id=1086

sol  :这题水水啊,直接大力DFS就行了

   首先当且仅当x<B时无解

   对于以x为根的子树,如果未分配的siz[x]>B,则单独划出一个省

   其他未被分配的点随意就近分配就好了

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;
const int Mx=;
int n,k,top,ans,q[Mx],cap[Mx],belong[Mx],siz[Mx];
int tot,head[Mx],nxt[*Mx],ver[*Mx];
inline void add(int x,int y)
{
nxt[++tot]=head[x];
ver[tot]=y;
head[x]=tot;
}
void dfs1(int x,int fa)
{
q[++top]=x;
for(int i=head[x];i;i=nxt[i])
{
int y=ver[i];
if(y!=fa)
{
dfs1(y,x);
if(siz[x]+siz[y]>=k)
{
siz[x]=;
cap[++ans]=x;
while(q[top]!=x) belong[q[top--]]=ans;
}
else siz[x]+=siz[y];
}
}
siz[x]++;
}
void dfs2(int x,int fa,int tmp)
{
if(belong[x]) tmp=belong[x];
else belong[x]=tmp;
for(int i=head[x];i;i=nxt[i])
{
int y=ver[i];
if(y!=fa)
dfs2(y,x,tmp);
}
}
void output()
{
cout<<ans<<endl;
for(int i=;i<=n;i++) cout<<belong[i]<<" ";cout<<endl;
for(int i=;i<=ans;i++) cout<<cap[i]<<" ";cout<<endl;
}
int main()
{
scanf("%d%d",&n,&k);
if(n<k) { cout<<""<<endl; return ; }
for(int i=,x,y;i<n;i++)
{
scanf("%d%d",&x,&y);
add(x,y),add(y,x);
}
dfs1(,); if(!ans) cap[++ans]=;
dfs2(,,ans);
output();
return ;
}

最新文章

  1. Looper.prepare()和Looper.loop()
  2. 在WebPart中获取Office 365中的未读邮件数
  3. IIS上虚拟站点的web.config与主站点的web.config冲突解决方法 分类: ASP.NET 2015-06-15 14:07 60人阅读 评论(0) 收藏
  4. dedecms中调用制定栏目
  5. CAP原理的证明
  6. (喷血分享)利用.NET生成数据库表的创建脚本,类似SqlServer编写表的CREATE语句
  7. xcode更新,想想也是醉了
  8. Poj 1328 / OpenJudge 1328 Radar Installation
  9. ViewController 的loadView、viewDidLoad、viewDidUnload分别是什么时候调用的,在自定义ViewCointroller时在这几个函数中应该做什么工作?
  10. arm-linux移植MT7601Uusb无线网卡(小度wifi,360随身WIFI 2代)
  11. hadoop之hdfs学习
  12. #, about:blank,javascript:路径比较
  13. JqGrid帮助文档
  14. mongodb新人扫盲
  15. 简单的独享smb
  16. 把时间留给重要的事——Markdown 模板功能上线
  17. go 【第二篇】包、变量、函数
  18. Zookeeper并不保证读取的是最新数据
  19. 4、new一个对象的时候,初始化顺序:
  20. Android RadioGroup中设置默认选中RadioButton 后,选中两个的问题 解决方法

热门文章

  1. linux 下nginx除了首页404的问题
  2. pm2 服务器命令
  3. Linux问题分析或解决_samba无法连接
  4. k8s使用自定义证书将客户端认证接入到API Server
  5. 从Mixin到hooks,谈谈对React16.7.0-alpha中即将引入的hooks的理解
  6. 50 道 CSS 基础面试题及答案
  7. java的重写(Override) (2013-10-11-163 写的日志迁移
  8. ob缓存的基本使用
  9. mem_init()
  10. 并查集:HDU5326-Work(并查集比较简单灵活的运用)