最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

體育記者C++(前向星)

2023-07-13 20:32 作者:喵雕沙  | 我要投稿

題目描述

小A是一個體育報社的記者,接受到一個艱難的任務:有N支足球隊參加足球比賽,現(xiàn)在給你一些比賽的結果,需要你給出各支球隊的排名,從1到N。

以下是給你的一些信息:

(1)沒有平局;

(2)不同的球隊排名不能相同;

(3)對于所有滿足l≤a<b≤n,第a名的球隊一定可以打敗第b名的球隊。

給你部分比賽結果,要求給出排名,并且判斷是否存在另一種排名方法滿足給你的比賽結果

輸入

第一行輸入N(1≤N≤5000),表示球隊的數(shù)量,編號為l到N。第二行輸入M(1≤M≤100,000),表示給出的比賽場數(shù)。接下來M行,每行兩個整數(shù)X_i,Y_i,表示X_i能打敗Y_i。

輸出

輸出包含N+1行,前N行描述球隊的排名,第i個數(shù)表示第i名的球隊(有多種排名時,輸出字典序小的),第N+1行包含一個整數(shù),如果為0表示不存在其他的排名方法,如果為1表示還有其他的排名方法。

樣例輸入?復制

3 2 2 ?1 2 ?3

樣例輸出?復制

2 1 3 1

提示

【數(shù)據(jù)范圍】

30%的數(shù)據(jù)滿足:l≤N≤7,1≤M≤15

60%的數(shù)據(jù)滿足:l≤N≤100,1≤M≤2000

100%的數(shù)據(jù)滿足:l≤N≤5000,1≤M≤100000

程序

#include <bits/stdc++.h>
using namespace std;
const int maxn=100005;
int m,n,a,b,c,p,cnt,head[maxn],rd[maxn],ans[maxn];
bool k;
priority_queue<int>q;
struct edge
{
????int to,next;
}e[500002];
void bu(int x,int y)
{
????e[++cnt].next=head[x];
????e[cnt].to=y;
????head[x]=cnt;
????rd[y]++;
}
?
int main()
{
????k=false;
????cin>>n>>m;
????for(int i=1;i<=m;i++)
????{
????????cin>>a>>b;
????????bu(a,b);
????}
????p=0;
????for(int i=1;i<=n;i++)
????????if(rd[i]==0)
????????{
????????????q.push(-i);
????????????p++;
????????}
????if(p>1)
????????k=1;
????while(!q.empty())
????{
????????c=-q.top();
????????ans[++ans[0]]=c;
????????q.pop();
????????p=0;
????????for(int i=head[c];i;i=e[i].next)
????????{
????????????rd[e[i].to]--;
????????????if(rd[e[i].to]==0)
????????????{
????????????????q.push(-e[i].to);
????????????????p++;
????????????}
????????}
????????if(p>1)
????????????k=1;
????}
????for(int i=1;i<=ans[0];i++)
????????cout<<ans[i]<<"\n";
????cout<<k;
????return 0;
}

體育記者C++(前向星)的評論 (共 條)

分享到微博請遵守國家法律
长子县| 常州市| 张家口市| 奉新县| 蓬安县| 铁岭县| 弋阳县| 沁阳市| 望江县| 平阳县| 遂宁市| 富蕴县| 宁阳县| 彭阳县| 蕲春县| 彰化市| 广元市| 邵阳县| 奇台县| 奉贤区| 长葛市| 湘乡市| 香格里拉县| 泌阳县| 威海市| 祥云县| 民丰县| 五台县| 和田市| 新乡市| 巴东县| 马尔康县| 永州市| 崇文区| 东城区| 新建县| 汝南县| 定襄县| 长沙市| 辽阳县| 密云县|