P2325 [SCOI2005]王室联邦

Posted sfwr-you

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P2325 [SCOI2005]王室联邦相关的知识,希望对你有一定的参考价值。

技术图片

 

 


SPJ

构造一下,用栈记录即可


#include<bits/stdc++.h>
using namespace std;
int sth,head[10000],n,a,b,c,m,ne,sta[10000],cnt,ct[10000],tag[10000];
struct node{int nxt,to;}eg[10000];
void adde(int u,int v)
{
    eg[++ne].nxt=head[u];
    eg[ne].to=v;
    head[u]=ne;
}
void dfs(int u,int fa)
{
    int now=sth;
    for(int i=head[u];i;i=eg[i].nxt)
    if(eg[i].to!=fa)
    {
        dfs(eg[i].to,u);
        if(sth-now>=m)
        {
            ct[++cnt]=u;
            while(sth>now)
            tag[sta[sth--]]=cnt;
        }
    }
    sta[++sth]=u;
}
int main()
{
    cin>>n>>m;
    for(int i=1;i<n;i++)
    {cin>>a>>b;adde(a,b);adde(b,a);}
    dfs(1,0);
    if(!cnt)ct[++cnt]=1;
    while(sth)
    tag[sta[sth--]]=cnt;
    cout<<cnt<<endl;
    for(int i=1;i<=n;i++)cout<<tag[i]<<" ";cout<<endl;
    for(int i=1;i<=cnt;i++)cout<<ct[i]<<" ";
}

 

以上是关于P2325 [SCOI2005]王室联邦的主要内容,如果未能解决你的问题,请参考以下文章

洛谷 P2325 [SCOI2005]王室联邦

「SCOI2005」王室联邦

1086: [SCOI2005]王室联邦

BZOJ 1086: [SCOI2005]王室联邦

Bzoj 1086: [SCOI2005]王室联邦

BZOJ 1086 Scoi2005 王室联邦