https://zhixincode.com/contest/16/problem/C?problem_id=239
题意:给定了无向连通简单图 G G G的点集,和图 G G G的边的一个子集 S S S,但没有给出边集 E E E。试判断 S S S有没有可能是图 G G G的最小边覆盖。
这题给了点乱七八糟的结论,然而并没什么卵用,这个题只需要判断就行,所以统计一下每个点的度数,然后每个点都是出度为1且入度为1才是Yes。
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <cstring>
using namespace std;
int a[300010],b[300010];
int h[200010];
bool res=1;int main()
{
int m,n;scanf("%d%d",&n,&m);for(int i=1;i<=m;i++){
scanf("%d%d",&a[i],&b[i]);h[a[i]]++;h[b[i]]++;}for(int i=1;i<=m;i++)if(h[a[i]]>=2 && h[b[i]]>=2)res=0;for(int i=1;i<=n;i++)if (!h[i])res = false;if(res)printf("Yes\n");elseprintf("No\n");return 0;
}