AtCoder Beginner Contest 166 C.Peaks

AtCoder Beginner Contest 166 C.Peaks

題目鏈接
在這裏插入圖片描述
這題考慮存圖的話一定會超時,所以要在輸入時就判斷,也很簡單,可以直接在輸入時判斷矮的那個人非法,最後跑一遍更新答案即可,複雜度 O(m+n)O(m+n),AC代碼如下:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;

main()
{
    int n,m,x,y;
    cin>>n>>m;
    int h[n+1],flag[n+1],ans=0;
    fill(flag,flag+n+1,1);
    for(int i=1;i<=n;i++) cin>>h[i];
    while(m--){
        cin>>x>>y;
        if(h[x]<=h[y]) flag[x]=0;
        if(h[y]<=h[x]) flag[y]=0;
    }
    for(int i=1;i<=n;i++)
        if(flag[i]) ans++;
    cout<<ans;
    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章