求助大佬
查看原帖
求助大佬
266948
Lhy2009楼主2024/5/2 16:21

求助大佬,为何会WA(只有一个点AC)?

#include<iostream>
using namespace std;
int n,m,a[20010],b[20010],cnt1,cnt2,cnt3,cnt;
char tmp;
bool hd[10010],hud[10010];//hd:删掉之前某一行可能成为最小值,hud:不删之前的行可能成为最小值
int main(){
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        hd[i]=true;
        hud[i]=true;
    }
    for(int i=0;i<m;){
        cin>>a[i]>>tmp>>b[i];
        hd[a[i]]|=hd[b[i]];
        hd[b[i]]=false;
        hd[a[i]]|=hud[a[i]];
        hd[b[i]]|=hud[b[i]];
        if(i) hd[a[i-1]]|=hud[a[i-1]];
        if(i) hd[b[i-1]]|=hud[b[i-1]];
        hud[a[i]]|=hud[b[i]];
        hud[b[i]]=false;
        if(++i<m) cin>>tmp;
    }
    for(int i=2;i<=n;i++){
        if(hd[i]){
            if(hud[i]) cnt1++;
            else cnt2++;
        }else if(hud[i]) cnt3++;
    }
    cout<<cnt2+(cnt1+cnt3)*2<<endl;
    return 0;
}
2024/5/2 16:21
加载中...