【NOIP2016提高A组模拟】完美标号
来源:互联网 发布:四宫格拍照软件是什么 编辑:程序博客网 时间:2024/06/07 06:31
Description
给定M个二元组(A_i, B_i),求X_1, …, X_N满足:对于任意(A_i, B_i),有|X_{A_i} - X_{B_i}| = 1成立。
Solution
上面题设的转换形式就是二元组的ai和bi颜色不相同。
那么直接0、1染色之类的。
直接一个dfs就搞定了。
Code
#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#define fo(i,a,b) for(i=a;i<=b;i++)#define rep(i,a) for(i=first[a];i;i=next[i])using namespace std;const int maxn=100007;int i,j,k,l,t,n,m,ans;int a[maxn],b[maxn],first[maxn*2],last[maxn*2],next[maxn*2],num;int c[maxn];bool bz[maxn],cz;void add(int x,int y){ last[++num]=y,next[num]=first[x],first[x]=num;}void dfs(int x,int y){ int i; if(bz[x]){ if(y){ if(c[y]==c[x])cz=0; } return; } bz[x]=1;c[x]=(!c[y]); rep(i,x){ if(last[i]!=y){ dfs(last[i],x); } }}int main(){ scanf("%d%d",&n,&m); fo(i,1,m){ scanf("%d%d",&k,&l); add(k,l),add(l,k); } fo(i,1,n){ if(!bz[i]){ cz=1; dfs(i,0); if(!cz){ printf("NO\n"); return 0; } } } printf("YES\n"); fo(i,1,n)printf("%d ",c[i]);}
2 0
- 【NOIP2016提高A组模拟】完美标号
- 【NOIP2016提高A组集训第1场10.29】完美标号
- 【NOIP2016提高A组集训第1场10.29】完美标号
- JZOJ 4822. 【NOIP2016提高A组集训第1场10.29】完美标号
- JZOJ 4822. 【NOIP2016提高A组集训第1场10.29】完美标号
- JZOJ4822. 【NOIP2016提高A组集训第1场10.29】完美标号
- JZOJ4822. 【NOIP2016提高A组集训第1场10.29】完美标号
- NOIP2016提高A组集训第1场【JZOJ4822】完美标号
- 【NOIP2016提高A组集训第1场10.29】完美标号
- 完美标号【NOIP2016提高A组集训第1场10.29】
- JZOJ 4822 【NOIP2016提高A组集训第1场10.29】完美标号
- 【NOIP2016提高A组模拟7.15】立方体
- 计数【NOIP2016提高A组模拟7.15】
- 【NOIP2016提高A组模拟7.17】寻找
- 【NOIP2016提高A组模拟7.17】寻找
- 【NOIP2016提高A组模拟7.17】锦标赛
- 【NOIP2016提高A组模拟7.17】锦标赛
- 【NOIP2016提高A组模拟7.17】锦标赛
- Hibernate二级缓存的并发访问策略
- 双向链表
- 色彩校正中的 gamma 值是什么?
- 再见,我的高中歌唱生涯
- Android判断手机屏幕是否亮着
- 【NOIP2016提高A组模拟】完美标号
- OpenGL学习脚印:Blinn-Phong光照模型
- Java设计模式之——原型模式
- java线程
- Arduino学习(九): 写一个Arduino扩展库:音乐播放库,并实现跨平台
- Android开发mac /dev/kvm is not found
- Windows 数字签名
- xcode 视图里面复制某个或者几个组件
- getResource()和getResourceAsStream以及路径问题