0
点赞
收藏
分享

微信扫一扫

能否获胜【牛客】

小沙坨 2022-04-03 阅读 47
算法c++

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld
题目描述
有nn名选手会进行mm次比赛,每次比赛不会出现平局的情况,只会有一个胜者。在每次比赛完成之后,我们视胜者选手的实力比败者选手的实力强,如果出现选手AA打败选手BB,选手BB打败选手CC,选手CC打败选手AA,则视为他们的实力全部相同。

若该赛季最终冠军是属于实力最强者,请问依照现在已有的比赛结果,最多有多少个选手可能获得冠军(如果已知两个人的实力一样强,那么他们两个人都不能获得冠军)。

输入描述:
第一行输入两个正整数nn,mm,其中:n\leq 10^{5}n≤10
5
,m\leq 10^{5}m≤10
5

接下来mm行,每行两个正整数aa与bb,代表选手aa战胜了选手bb,满足:a\leq na≤n,b\leq nb≤n。

输出描述:
输出最多有多少名选手最终可能获得冠军。

示例1
输入
复制
3 2
1 2
1 3
输出
复制
1
#include<iostream>
#include<set>
using namespace std;

int main(){
    set<int> s;
    int n,m;
    cin>>n>>m;
    for(int i=1;i<=m;i++){
        int a,b;
        cin>>a>>b;
        s.insert(b);
    }
    int count=n-s.size();
    cout<<count<<endl;
    return 0;
}
举报

相关推荐

------------------牛客

牛客 骑士

牛客--手套

仿牛客项目

成绩排序-牛客

牛客MySQL复习

0 条评论