codeforces Road Map 图论,水。

来源:互联网 发布:淘宝微淘标题大全 编辑:程序博客网 时间:2024/05/29 15:16

做法:其实只要看最后给定的信息就可以建立完整的树,然后直接DFS

#include <iostream>#include <cstdio>#include <cstring>const int LMT=50003;using namespace std;struct line{    int u,v,next;}e[LMT<<1];int ans[LMT],next[LMT],all;void insert(int u,int v){    e[all].u=u;    e[all].v=v;    e[all].next=next[u];    next[u]=all++;}void dfs(int u,int pre){    ans[u]=pre;    for(int x=next[u];x!=-1;x=e[x].next)    if(e[x].v!=pre)dfs(e[x].v,u);}int main(){    memset(next,-1,sizeof(next));    int r1,r2,n,x;    scanf("%d%d%d",&n,&r1,&r2);    for(int i=1;i<=n;i++)    if(i!=r1)    {        scanf("%d",&x);        insert(x,i);        insert(i,x);    }    dfs(r2,-1);    for(int i=1;i<=n;i++)    if(i!=r2)printf("%d ",ans[i]);    return 0;}


原创粉丝点击