• 全体集合(牛客)



    分析:
    该题仅仅只是判断能否集合,发现如果俩个点距离差为奇数,则可以,距离差为偶数,则不行
    无向图保证连通,则有可能两个点有多条路径可以走,换个说法可能会有环
    则可能会有一种情况,a->b有一条路径为奇数,有一条路径为偶数
    那么其他点无论怎么样都可以满足与a,b两点集合
    因为:假如一个点距离a为奇数,那么a就可以与他集合,如果距离a为偶数,那么他距离b点就为奇数,可以与b集合
    a和b肯定是可以集合,所以整个图都可以集合。
    如果没有奇偶环的话(两点路径奇偶唯一),直接遍历一遍整个图,如果有存在偶数的一定不成立

    #include<bits/stdc++.h>
    using namespace std;
    const int N=2e5+10;
    
    int n,m,k;
    vector<int>e[N];
    
    int col[N],op;
    
    void dfs(int u){
    	for(auto v:e[u]){
    		if(col[v]&&col[v]==col[u]) op=1;
    		if(!col[v]) col[v]=-col[u],dfs(v);
    	}
    }
    
    int main(){
    	scanf("%d%d%d",&n,&m,&k);
    	for(int i=1,u,v;i<=m;i++){
    		scanf("%d%d",&u,&v);
    		e[u].push_back(v),e[v].push_back(u);
    	}
    	col[1]=1;
    	dfs(1);
    	if(op==1) return puts("YES")&0;
    	int a1,s;
    	scanf("%d",&a1);
    	for(int i=2;i<=k;i++) {
    		scanf("%d",&s);
    		if(col[s]!=col[a1]) op=1;
    	}
    	puts(op?"NO":"YES");
    	return 0;
    }
  • 相关阅读:
    面向对象三大特性五大原则
    如何快速的浏览项目
    网页测速
    截取字符串
    iOS-tableView点击下拉菜单
    iOS_block内存分析
    iOS_ @property参数分析
    iOS-设计模式之Block
    iOS-设计模式之代理反向传值
    iOS-设计模式之通知
  • 原文地址:https://www.cnblogs.com/wzxbeliever/p/15811091.html
Copyright © 2020-2023  润新知