求hack!!!
查看原帖
求hack!!!
806509
mo_qiu楼主2023/3/5 11:23
#include <bits/stdc++.h>
#define maxn 2001000
using namespace std;
bool vis[maxn];
int n,m,tx,ty;
int main(){
    cin  >> n >> m; int tmp=m,num=0;  n--;
    n=max(1,n);
    while(tmp--){
        cin >> tx >> ty;
        if(vis[tx]&&vis[ty])  n++;
        else  vis[tx]=vis[ty]=1;
    }
    for(int i=1;i<=maxn;++i){
        if(vis[i])  num++;
    }
    if(n!=m||n!=num)  cout << "No";
    else  cout << "Yes";
	return 0;
}

大致思路是模拟一遍所有顶点能构成几条边,以及判断所构成的边数与原顶点数是否相等, 但是很神奇,我看不懂为什么加个这个就ac了?

n--;n=max(1,n);
2023/3/5 11:23
加载中...