BZOJ1086[SCOI2005] 王室联邦

无法加载文件:C:\Users\Lenovo\AppData\Roaming\npm\cnpm.ps1,因为在此系统上禁止运行脚本编程 当您遇到类似于"无法加载文件:C:\Users\Lenovo\AppData\Roaming\npm\cnpm.ps1,因为在此系统上禁止运行脚本编程"的错误消息时,请按照上述步骤来解决问题。当您尝试加载文件C:\Users\Lenovo\AppData\Roaming\npm\cnpm.ps1时,可能会遇到类似于"无法加载文件:C:\Users\Lenovo\AppData\Roaming\npm\cnpm.ps1,因为在此系统上禁止运行脚本编程"的错误消息。请注意,更改执行策略可能会带来一些安全风险。 阅读详情

原题链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1086

王室联邦

Description

  “余”人国的国王想重新编制他的国家。他想把他的国家划分成若干个省,每个省都由他们王室联邦的一个成员来管理。他的国家有n个城市,编号为1..n。一些城市之间有道路相连,任意两个不同的城市之间有且仅有一条直接或间接的道路。为了防止管理太过分散,每个省至少要有B个城市,为了能有效的管理,每个省最多只有3B个城市。每个省必须有一个省会,这个省会可以位于省内,也可以在该省外。但是该省的任意一个城市到达省会所经过的道路上的城市(除了最后一个城市,即该省省会)都必须属于该省。一个城市可以作为多个省的省会。聪明的你快帮帮这个国王吧!

Input

  第一行包含两个数N,B(1<=N<=1000, 1 <= B <= N)。接下来N-1行,每行描述一条边,包含两个数,即这条边连接的两个城市的编号。

Output

  如果无法满足国王的要求,输出0。否则输出数K,表示你给出的划分方案中省的个数,编号为1..K。第二行输出N个数,第I个数表示编号为I的城市属于的省的编号,第三行输出K个数,表示这K个省的省会的城市编号,如果有多种方案,你可以输出任意一种。

Sample Input

8 2
1 2
2 3
1 8
8 7
8 6
4 6
6 5

Sample Output

3
2 1 1 3 3 3 3 2
2 1 8

题解

树上分块板子???

我们直接 dfs d f s 到叶子节点,在回溯时将点加入栈里。这样,栈里储存的就是当前子树里的一些点,满足了题目要求。当某个点在栈里的后面点超过 B B 时,直接弹出、染色,省会就是当前点。

代码
#include<bits/stdc++.h>
using namespace std;
const int M=1005;
vector<int>mmp[M];
int n,p,sta[M],top,col[M],cap[M],cot;
void in()
{
    int a,b;scanf("%d%d",&n,&p);
    for(int i=1;i<n;++i)scanf("%d%d",&a,&b),mmp[a].push_back(b),mmp[b].push_back(a);
}
void dfs(int v,int f)
{
    int tmp=top,to;
    for(int i=mmp[v].size()-1;i>=0;--i)
    {
        to=mmp[v][i];if(to==f)continue;
        dfs(to,v);
        if(top-tmp>=p){cap[++cot]=v;while(top!=tmp)col[sta[top--]]=cot;}
    }
    sta[++top]=v;
} 
void ac()
{
    dfs(1,0);
    while(top)col[sta[top--]]=cot;
    printf("%d\n",cot);
    for(int i=1;i<=n;++i)printf("%d ",col[i]);putchar(10);
    for(int i=1;i<=cot;++i)printf("%d ",cap[i]);
}
int main()
{
    in();ac();
    return 0;
}
Outlook Express 6 (OE6) for Win7/Win8/Win10 英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。 立即下载

相关推荐

嵌入式SD/TF卡通用协议-SDIO协议

为了驱动SD卡,首先的第一步就是观察SD卡引脚接线情况,通常我们在画原理图时,都是使用的SD卡卡槽与MCU进行接线。SD卡可以使用SDIO协议和SPI协议进行通信,这里我们主要介绍SDIO协议。下图中的TF卡只是容量小一点的SD卡。以F1C100S为例,接线图如下所示:我们发现上图中的TF卡使用的协议为SDIO协议,主要有4根数据线,1根命令线,1根时钟线组合而成。为了驱动这个SD/TF卡我们就需要去了解SDIO协议的时序。

qq_1033275663的博客 3050

[bzoj 1086--SCOI2005]王室联邦

Description   有n个点,n-1条边,任意两个不同的点之间有且仅有一条直接或间接边。把n个点分为若干个部分,每个部分最少要b个点,其中有一个点(BOSS)可在此部分内或外。使得此部分内的点到BOSS点的路径上经过的点全在此部分内。

galiqing的博客 700

Vivado FFT IP核避坑指南:从Matlab数据生成到FPGA验证的完整流程

本文详细解析了Vivado FFT IP核从Matlab数据生成到FPGA验证的完整流程,重点解决跨平台数据一致性、IP核配置陷阱和验证方法论等核心问题。通过实战案例和避坑指南,帮助工程师高效实现FFT运算的硬件验证,确保结果与Matlab的误差控制在0.3%以内。

weixin_42543046的博客 395

bzoj 1086 王室联邦 (dfs,构造)

题意: 思路: &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 首先我们dfs,如果一个节点v的儿子u所在的子树大于等于B,那么就把这个子树当作一个省份,对于这种情况,省会是u,v其实都可以。如果一个儿子u所在的子树小于B,可以先暂存起来,继续遍历其他儿子,当暂存的数量大于等于B的时候,将暂存的都归为一个省,省会为v,因为会暂存的子树大小为B-1,所以这样产生的子树大小最大为2B-2,在...

Roll_Keyboard的博客 347

Claude Code 完整学习笔记

Claude Code 学习笔记摘要 Claude Code是Anthropic推出的智能编码工具,基于Claude Opus 4.5模型构建,提供跨平台支持(终端/VS Code/JetBrains/Web等)。核心功能包括: 代码库理解与多文件编辑 命令执行与开发工具集成 智能体协作开发流程 安装要求Node.js≥18,提供原生/Homebrew/npm等多种安装方式,支持环境变量配置API访问。基础交互模式包括会话管理、文件操作和代码审查等功能,可自动读写文件并执行精确修改。 (149字)

虚心若愚 810

Oracle 19c RAC安装踩坑实录:OpenSSH 8.x版本与OUI的“兼容性战争”及一劳永逸的解决思路

本文深入解析Oracle 19c RAC在Linux8环境中部署时遇到的OpenSSH 8.x版本兼容性问题,特别是[INS-06006]错误的根源与解决方案。从协议层分析冲突本质,提供SCP包装器技术、官方补丁应用指南及现代化部署体系构建三种解决方案,帮助企业高效完成RAC安装并规避类似问题。

weixin_42648844的博客 456

[BZOJ]1086: [SCOI2005]王室联邦

Time Limit: 10 SecMemory Limit: 162 MB Special Judge Description   “余”人国的国王想重新编制他的国家。他想把他的国家划分成若干个省,每个省都由他们王室联邦的一个成员来管理。他的国家有n个城市,编号为1..n。一些城市之间有道路相连,任意两个不同的城市之间有且仅有一条直接或间接的道路。为了防止管理太过分散,每个省至少要...

weixin_30834019的博客 113

Windows+VSCode+Cline+MCP全流程配置指南

本文提供了一份详细的Windows+VSCode+Cline+MCP全流程配置指南,旨在帮助开发者打造高效的AI辅助编码工作站。文章从环境准备讲起,逐步指导安装VSCode、配置Cline插件、搭建Node.js环境,并重点详解如何通过MCP为Cline集成文件系统和GitHub等工具服务器,实现用自然语言操控开发环境,从而显著提升日常编码与文件管理效率。

weixin_28840143的博客 550

1086: [SCOI2005]王室联邦

一开始做的时候脑残了,以为会出现很多无解的情况,于是加了一堆特判,果断WA。 后来发现,明明只有n 然后发现题意理解错了。。。。 原来多颗子树可以由根连接成省,而根可以在省外。。。。。。。 于是我们有个贪心的方法。 当前节点的子树集的大小一旦大于等于B,直接分成一个省,当然我们还可以证明这个省的城市数 最后还有一些 #include #include #include using n

月下沙茶树 504

用废旧汽车电池DIY家用UPS:手把手教你低成本搭建Wi-Fi不断电系统

本文详细介绍了如何利用废旧汽车电池DIY低成本家用UPS系统,确保Wi-Fi设备在断电时持续供电。通过精选材料、电路搭建和安全防护,实现高效稳定的电源转换与智能切换,成本仅为市售UPS的三分之一。特别适合家庭办公和远程工作者提升网络供电可靠性。

weixin_29200485的博客 462

开源机器学习平台tipdm

TipDM建模平台 tipdm开源的python机器学习建模平台,用户通过拖拉就可以实现模型开发。 项目结构 backend :为java后台服务代码 frontedn :为vue js前端代码 mock-oauth-server:为java认证服务代码 主要分析backend后台服务代码,典型的java spring mvc web项目,项目结构如下: framework-common:公共代码,主要为工具类,spring相关公用类 framework-model: 实体..

wflh323的专栏 4247

【BZOJ1086】【SCOI2005】王室联邦(树分块)

Description “余”人国的国王想重新编制他的国家。他想把他的国家划分成若干个省,每个省都由他们王室联邦的一个成员来管理。 他的国家有n个城市,编号为1..n。一些城市之间有道路相连,任意两个不同的城市之间有且仅有一条直接或间接的道路。为了防止管理太过分散,每个省至少要有B个城市,为了能有效的管理,每个省最多只有3B个城市。 每个省必须有一个省会,这个省会可以位于省内,也可以在该省外...

დ♂Hany01's Blog Space♂ღ 348

01-系统技术架构师必备——软件架构设计基础与核心概念

摘要 本文系统阐述了软件架构设计的核心概念与方法论,重点涵盖以下内容:1)软件架构的四大要素(构件、连接件、约束、配置)及其边界划分;2)Garlan & Shaw五大架构风格(数据流、调用/返回、独立构件、虚拟机、仓库)的典型应用场景;3)基于电商库存系统的架构选型实战案例,展示如何根据业务需求(高并发、最终一致性)选择事件驱动架构配合Saga模式;4)介绍ABSD、DSSA等主流架构方法论及ISO/IEEE标准体系。文章融合金融与互联网领域的架构实践经验,为技术架构师提供系统性的知识框架和决策参考。

模界 | AI工程化实践者 181

【BZOJ 1086】 [SCOI2005]王室联邦

块状树~ 学习树上莫队必备~

Regina8023 2043

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

[BZOJ1086][SCOI2005]王室联邦

[BZOJ1086][SCOI2005]王室联邦 转载:xgc_woker的博客(http://blog.youkuaiyun.com/xgc_woker/article/details/52318673)

私は Mocha!! 756

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

[bzoj1086][SCOI2005]王室联邦 dfs

服从真理,就能征服一切事物。

Unlimited Code Works 297

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

BZOJ 1086 Scoi2005 王室联邦

1086: [SCOI2005]王室联邦 Time Limit:10 SecMemory Limit:162 MBSecSpecial JudgeSubmit:2184Solved:1340[Submit][Status][Discuss] Description   “余”人国的国王想重新编制他的国家。他想把他的国家划分成若干个省,每个省都由他们王室联...

178

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

【BZOJ1086】[SCOI2005]王室联邦 Description   “余”人国的国王想重新编制他的国家。他想把他的国家划分成若干个省,每个省都由他们王室联邦的一个成员来管理。他的国家有n个城市,编号为1..n。一些城市之间有道路相连,任意两个不同的城市之间有且仅有一条直接或间接的道路。为了防止管理太过分散,每个省至少要有B个城市,为了能有效的管理,每个省最多只有3B个城市。每个省...

weixin_30872671的博客 76

bzoj1086 [SCOI2005]王室联邦 树分块

【bzoj1086】[SCOI2005]王室联邦 2014年11月14日2,6590 Description “余”人国的国王想重新编制他的国家。他想把他的国家划分成若干个省,每个省都由他们王室联邦的一个成员来管理。他的国家有n个城市,编号为1..n。一些城市之间有道路相连,任意两个不同的城市之间有且仅有一条直接或间接的道路。为了防止管理太过分散,每个省至少要有B个城市,为了能有效的...

weixin_30802273的博客 110

bzoj 1086[SCOI2005]王室联邦 - 树分块

1086: [SCOI2005]王室联邦 Time Limit:10 SecMemory Limit:162 MBSecSpecial Judge Description   “余”人国的国王想重新编制他的国家。他想把他的国家划分成若干个省,每个省都由他们王室联邦的一个成员来管理。他的国家有n个城市,编号为1..n。一些城市之间有道路相连,任意两个不同的城市之间...

139

BZOJ 1086: [SCOI2005]王室联邦【树分块】

1086: [SCOI2005]王室联邦 【题目描述】 传送门 【题解】 一道树分块的板子题,我们DFS每个节点,用一个栈存一下,如果当前入队个数超过B个,那么就将这些节点归成一块,最后将最后一些剩下的归成一块。 因为题目给的上限是3B,所以不用考虑超过的情况。 代码如下 #include<cstdio&...

aiweiluan5095的博客 116

【BZOJ】1086: [SCOI2005]王室联邦

http://www.lydsy.com/JudgeOnline/problem.php?id=1086 题意:n个点的树,要求分块,使得每一块的大小在[b, 3b]内且块与某个点形成的块是连通的(某个点既可以是块内也可以在块外)(n<=1000, b<=n) #include <bits/stdc++.h> using namespace std; ...

149

【bzoj1086】[SCOI2005]王室联邦

“余”人国的国王想重新编制他的国家。他想把他的国家划分成若干个省,每个省都由他们王室联邦的一个成员来管理。他的国家有n个城市,编号为1..n。一些城市之间有道路相连,任意两个不同的城市之间有且仅有一条直接或间接的道路。为了防止管理太过分散,每个省至少要有B个城市,为了能有效的管理,每个省最多只有3B个城市。每个省必须有一个省会,这个省会可以位于省内,也可以在该省外。【bzoj1086】[SCOI2005]王室联邦

M__HD的博客 408

[题解]bzoj1086 SCOI2005王室联邦

Description  “余”人国的国王想重新编制他的国家。他想把他的国家划分成若干个省,每个省都由他们王室联邦的一个成 员来管理。他的国家有n个城市,编号为1..n。一些城市之间有道路相连,任意两个不同的城市之间有且仅有一条 直接或间接的道路。为了防止管理太过分散,每个省至少要有B个城市,为了能有效的管理,每个省最多只有3B个 城市。每个省必须有一个省会,这个省会可以位于省内,也可以在该省

Saramanda的博客 541

bzoj 1086 [SCOI2005]王室联邦

http://www.elijahqi.win/archives/3440 Description   “余”人国的国王想重新编制他的国家。他想把他的国家划分成若干个省,每个省都由他们王室联邦的一个成 员来管理。他的国家有n个城市,编号为1..n。一些城市之间有道路相连,任意两个不同的城市之间有且仅有一条 直接或间接的道路。为了防止管理太过分散,每个省至少要有B个城市,为了能有效的管理,每...

Elijahqi 318

BZOJ 1086 [SCOI2005]王室联邦

题目链接 https://www.lydsy.com/JudgeOnline/problem.php?id=1086 思路 对一棵树进行分块。 dfs,找到了一个节点,记录一个数组stst,代表它和它的子树中,没有被划分进任何省的点。 首先对他的每个节点dfs,把它儿子的stst序列加入自己的,如果自己stst序列大于了BB,...

dilei7762的博客 140
上一篇: BZOJ2038[2009国家集训队] 小Z的袜子(hose)
下一篇: 1003 对齐输出
ShadyPi
博客等级 码龄9年 1万+粉丝 637原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ShadyPi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值