社区讨论

问:为什么没判重边会100分

P3243[HNOI2015] 菜肴制作参与者 3已保存回复 3

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
3 条
当前快照
1 份
快照标识符
@mm4orqe1
此快照首次捕获于
2026/02/27 17:24
2 周前
此快照最后确认于
2026/03/01 14:15
上周
查看原帖

rt\Huge rt

顺便[](https://www.luogu.com.cn/discuss/1127829)^{^{顺便[宣](https://www.luogu.com.cn/discuss/1127829)}}
CPP
#include<bits/stdc++.h>
using namespace std;
void topo(vector<int> e[],priority_queue<int,vector<int>,less<int>>& q,int rd[],int n){
    stack<int> ans;
    int cnt=0;
    while(!q.empty()){
        int now=q.top();
        ans.push(now);
        q.pop();
        cnt++;
        for(int i=0;i<e[now].size();i++){
            if(!--rd[e[now][i]]){
                q.push(e[now][i]);
            }
        }
    }
    if(cnt!=n) puts("Impossible!");
    else{
        while(!ans.empty()){
            cout<<ans.top()<<' ';
            ans.pop();
        }
        cout<<'\n';
    }
}
void mian(){
    int n,m,rd[114514]={},rt;
    vector<int> e[114514];
    priority_queue<int,vector<int>,less<int>> q;
    cin>>n>>m;
    for(int i=1;i<=m;i++){
        int x,y;
        cin>>x>>y;
        e[y].push_back(x);
        rd[x]++;
    }
    for(int i=1;i<=n;i++){
        if(!rd[i]){
            q.push(i);
        }
    }
    topo(e,q,rd,n);
}
int main(){
    int t;
    cin>>t;
    while(t--){
        mian();
    }
}

回复

3 条回复,欢迎继续交流。

正在加载回复...