hdu 4857 逃生

来源:互联网 发布:爱淘客网站源码 编辑:程序博客网 时间:2024/05/16 06:09

我觉得这题与1285的题意是一样的但是同样的题对于

3 1

31

这组数据输出结果的要求却不一样,我也是不知道为什么

#include<iostream>#include<queue>#include<vector>#include<cstring>#include<cstdio>#define maxn 30000+5 using namespace std;vector<vector<int> >mapp;//char visit[maxn][maxn];int n,m;int head[maxn];int re[maxn]; void topo(){int t=n;    priority_queue<int>root;    for(int i=1;i<=n;i++)    {    if(!head[i]) root.push(i);     }    while(root.size())    {    int x=root.top();    re[--t]=x;    root.pop();    for(int i=0;i<mapp[x].size();i++)    {    head[mapp[x][i]]--;    if(!head[mapp[x][i]]) root.push(mapp[x][i]);    }    }}void print(){    printf("%d",re[0]);    for(int i=1;;i++)    {        if(!re[i]){break;}        printf(" %d",re[i]);    }    printf("\n");}int main(){int t;cin>>t;    cin.sync_with_stdio(false);    while(t--)    {    scanf("%d%d",&n,&m);        mapp.resize(n+1);        for(int i=0;i<n+1;i++) head[i]=0,re[i]=0,mapp[i].clear();        int x,y;        while(m--)        {            scanf("%d%d",&x,&y);            mapp[y].push_back(x);             head[x]++;        }        topo();        print();    }    return 0;}  


0 0
原创粉丝点击