蒟蒻求助!
查看原帖
蒟蒻求助!
801226
Heart_Beating楼主2023/10/1 06:58

0tps求调,哪位巨佬能来指点一下

#include<bits/stdc++.h>
using namespace std;
vector<int> e[100000];
int n,m,cnt=0,temp1,temp2,ans=0;
bool vis[100000],flag=false;
int input[100000];
int order[100000];
int main()
{
    std::ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    cin>>n>>m;
    for(int i=0;i<m;i++)
    {
        cin>>temp1>>temp2;
        input[temp2]++;
        e[temp1].push_back(temp2);
    }
    queue<int> q;
    for(int i=1;i<=n;i++)
    {
        if(input[i]==0)
        {
            q.push(i);
            vis[i]=true;
            cnt++;
            order[i]=cnt;
        }
    }
    while(!q.empty())
    {
        if(q.size()>1)
        {
            flag=true;
        }
        int t=q.front();
        q.pop();
        for(int i=0;i<int(e[t].size());i++)
        {
            input[e[t][i]]--;
            if(input[e[t][i]]==0 && !vis[e[t][i]])
            {
                q.push(e[t][i]);
                vis[e[t][i]]=true;
                cnt++;
                order[e[t][i]]=cnt;
            }
        }
    }
    for(int i=1;i<=n;i++)
    {
        cout<<order[i]<<endl;
    }
    cout<<flag;
    return 0;
}
2023/10/1 06:58
加载中...