zoukankan      html  css  js  c++  java
  • 【CCPC-Wannafly Winter Camp Day4 (Div1) C】最小边覆盖(简单题)

    点此看题面

    大致题意: 给你一个边集的子集,问你这可不可能是这张图的最小边覆盖。

    大致思路

    考虑到,如果一条边连接的两个点度数都大于等于(2),则这条边完全可以删去。

    因此,我们只要判断是否存在这样的边,就可以判断这个边集有没有可能是这张图的最小覆盖了。

    代码

    #include<bits/stdc++.h>
    #define Tp template<typename Ty>
    #define Ts template<typename Ty,typename... Ar>
    #define Reg register
    #define RI Reg int
    #define Con const
    #define CI Con int&
    #define I inline
    #define W while
    #define N 200000
    using namespace std;
    int n,m,a[N+5],b[N+5],deg[N+5];
    class FastIO
    {
    	private:
    		#define FS 100000
    		#define tc() (A==B&&(B=(A=FI)+fread(FI,1,FS,stdin),A==B)?EOF:*A++)
    		#define tn (x<<3)+(x<<1)
    		#define D isdigit(c=tc())
    		char c,*A,*B,FI[FS];
    	public:
    		I FastIO() {A=B=FI;}
    		Tp I void read(Ty& x) {x=0;W(!D);W(x=tn+(c&15),D);}
    		Ts I void read(Ty& x,Ar&... y) {read(x),read(y...);}
    }F;
    int main()
    {
    	RI i;for(F.read(n,m),i=1;i<=m;++i) F.read(a[i],b[i]),++deg[a[i]],++deg[b[i]];//统计度数
    	for(i=1;i<=m;++i) if(deg[a[i]]>=2&&deg[b[i]]>=2) return puts("No"),0;return puts("Yes"),0;//判断是否存在不合法情况
    }
    
  • 相关阅读:
    POJ2115解题报告【拓展欧几里得模板题】
    Linux安装jdk快速流程
    SpringBoot+Vue项目多文件上传同时上传其他参数
    Maven
    浏览器常用快捷键
    IDEA从GitHub仓库拉取代码
    Address already in use: bind
    Vue集成echarts插件
    致自己
    Flask_FileUpload
  • 原文地址:https://www.cnblogs.com/chenxiaoran666/p/CometOJDay4Div1C.html
Copyright © 2011-2022 走看看