http://www.lydsy.com/JudgeOnline/problem.php?id=1086 (题目链接)

题意

  求将树分为几个联通块,每个联通块大小大于B小于3B,是否可行。

Solution

  题都没看就翻了题解。。http://blog.csdn.net/popoqqq/article/details/42772237

代码

// bzoj3757
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<cstdio>
#include<cmath>
#define MOD 1000000007
#define inf 2147483640
#define LL long long
#define free(a) freopen(a".in","r",stdin);freopen(a".out","w",stdout);
using namespace std;
inline LL getint() {LL x=0,f=1;char ch=getchar();while (ch>'9' || ch<'0') {if (ch=='-') f=-1;ch=getchar();}while (ch>='0' && ch<='9') {x=x*10+ch-'0';ch=getchar();}return x*f;
}const int maxn=1010;
struct edge {int next,to;}e[maxn<<2];
int head[maxn],size[maxn],pos[maxn],q[maxn],n,B,cnt,top,c,cap[maxn];void insert(int u,int v) {e[++cnt].to=v;e[cnt].next=head[u];head[u]=cnt;e[++cnt].to=u;e[cnt].next=head[v];head[v]=cnt;
}
void dfs(int x,int fa) {q[++top]=x;for (int i=head[x];i;i=e[i].next) if (e[i].to!=fa) {dfs(e[i].to,x);if (size[x]+size[e[i].to]>=B) {size[x]=0;cap[++cnt]=x;while (q[top]!=x) pos[q[top--]]=cnt;}else size[x]+=size[e[i].to];}size[x]++;
}
void paint(int x,int fa,int c) {if (pos[x]) c=pos[x];else pos[x]=c;for (int i=head[x];i;i=e[i].next) if (e[i].to!=fa) paint(e[i].to,x,c);
}
int main() {scanf("%d%d",&n,&B);for (int i=1;i<n;i++) {int u,v;scanf("%d%d",&u,&v);insert(u,v);}if (n<B) {printf("0");return 0;}cnt=0;dfs(1,0);if (!cnt) cap[++cnt]=1;paint(1,0,cnt);printf("%d\n",cnt);for (int i=1;i<=n;i++) printf("%d ",pos[i]);printf("\n");for (int i=1;i<=cnt;i++) printf("%d ",cap[i]);return 0;
}

  

转载于:https://www.cnblogs.com/MashiroSky/p/5914607.html

【bzoj1086】 scoi2005—王室联邦相关推荐

  1. [bzoj1086][SCOI2005]王室联邦

    来自FallDream的博客,未经允许,请勿转载,谢谢 余"人国的国王想重新编制他的国家.他想把他的国家划分成若干个省,每个省都由他们王室联邦的一个成 员来管理.他的国家有n个城市,编号为1 ...

  2. BZOJ1086 [SCOI2005]王室联邦 【dfs + 贪心】

    题目 "余"人国的国王想重新编制他的国家.他想把他的国家划分成若干个省,每个省都由他们王室联邦的一个成 员来管理.他的国家有n个城市,编号为1..n.一些城市之间有道路相连,任意两 ...

  3. bzoj1086[SCOI2005]王室联邦

    传送门 Description "余"人国的国王想重新编制他的国家.他想把他的国家划分成若干个省,每个省都由他们王室联邦的一个成 员来管理.他的国家有n个城市,编号为1..n.一些 ...

  4. 【BZOJ1086】[SCOI2005]王室联邦 树分块

    [BZOJ1086][SCOI2005]王室联邦 Description "余"人国的国王想重新编制他的国家.他想把他的国家划分成若干个省,每个省都由他们王室联邦的一个成员来管理. ...

  5. [SCOI2005]王室联邦

    [SCOI2005]王室联邦 类似树分块 >=B,并且<=3B 直接dfs,用一个全局栈记录未规定省份的元素 dfs(y)上来,如果栈内元素>=B,就弹出来变成一个省,并且省会是x( ...

  6. BZOJ 1086: [SCOI2005]王室联邦( )

    其实合法方案一定存在....(B <= N), 构造答案就可以了...然而我是看题解才会的..... ---------------------------------------------- ...

  7. 1086: [SCOI2005]王室联邦

    (大概 打了5天比赛   学习计划 树上莫队一直都没来得及学 今天做了第一道树上分块的题  写挂了5,6次  许多细节没有注意到  慢慢改才发现 orz 继续加油 1086: [SCOI2005]王室 ...

  8. bzoj 1086: [SCOI2005]王室联邦(DFS)

    1086: [SCOI2005]王室联邦 Time Limit: 10 Sec  Memory Limit: 162 MBSec  Special Judge Submit: 2100  Solved ...

  9. BZOJ1086:[SCOI2005]王室联邦——题解

    http://www.lydsy.com/JudgeOnline/problem.php?id=1086 题面源于洛谷. 题目描述 "余"人国的国王想重新编制他的国家.他想把他的国 ...

  10. bzoj 1086: [SCOI2005]王室联邦

    Description "余"人国的国王想重新编制他的国家.他想把他的国家划分成若干个省,每个省都由他们王室联邦的一个成员来管理.他的国家有n个城市,编号为1..n.一些城市之间有 ...

最新文章

  1. URL/URI/URN的认识
  2. Silverlight - Out of Browser配置,安装和卸载
  3. OpenGL绘制带有索引的矩形的实例
  4. 如何将 SAP UI5 应用托管到 Github 网站上并运行
  5. scala akka_使用Scala,Play和Akka连接到RabbitMQ(AMQP)
  6. FatMouse's Speed hdu 1160(动态规划,最长上升子序列+记录路径)
  7. 转:用人单位给计算机系学生的一封信
  8. C++简单的下载文件操作的封装
  9. iOS 如何使用 Block
  10. 数据挖掘原理与算法 kNN算法
  11. linux长ping然后保存,Linux下长时间ping网络加时间戳并记录到文本
  12. 病毒周报(081208至081214)
  13. java 开源进销存项目_JSH_ERP 开源版J2EE进销存系统代码源码下载|JSH_ERP 开源版J2EE进销存系统代码源码官方下载-太平洋下载中心...
  14. Latex学习笔记(十五)特殊符号的插入
  15. 谷歌插件——Vimium
  16. 影视/动漫 短视频专栏来啦!
  17. 一文搞懂 Traefik2.1 的使用
  18. memcpy 内存越界分析
  19. linux 巨型帧 网卡,Linux Kernel e1000驱动巨型帧处理绕过安全检查漏洞
  20. 音频剪辑合成 php,mp3音乐剪辑合成用哪个软件 比mp3剪切合并大师好用的mp3剪切合并器方案...

热门文章

  1. jQuery对表单、表格的操作以及更多应用
  2. php文件上传及头像预览
  3. Linux软件安装管理 - CentOS (二) ---- yum在线安装
  4. Oracle 11g 的bug?: aix 上,expdp 11.2.0.1 导出,impdp 11.2.0.3 导入,Interval 分区的 【Interval】 分区属性成了【N】...
  5. php帝国程序跨表调用数组,帝国CMS 跨表调用相关信息标签
  6. OVS ovs-vsctl(二十五)
  7. 离散数学范式c语言实验报告,离散数学实验报告-利用真值表法求主析取范式及主合取范式的实现...
  8. python的热潮_Python这么热,要不要追赶Python学习热潮?
  9. 简述WinCE开发特性及忠告
  10. C#获得父进程PID编号的完整源源码