二分图染色
2018-03-08 13:08
274 查看
luogu1525 关押罪犯
可以用并查集
也可以用二分图染色+二分答案
每次找到一个怒气值将比此怒气值大的连个点连边
然后dfs染色
如果二分图染色合法则此怒气值可行
做法如下:
可以用并查集
也可以用二分图染色+二分答案
每次找到一个怒气值将比此怒气值大的连个点连边
然后dfs染色
如果二分图染色合法则此怒气值可行
做法如下:
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #define maxn 100005 using namespace std; int n,m,cnt,head[maxn],clo[maxn],ans,ci[maxn]; bool used[maxn],flag; struct joi{ int frm,to,w; }per[maxn]; struct node{ int to,nxt; }edge[maxn*2]; bool cmp(joi x,joi y) { return x.w>y.w; } void add(int x,int y) { cnt++; edge[cnt].to=y; edge[cnt].nxt=head[x]; head[x]=cnt; } bool dfs(int x,int cl)//染色 { clo[x]=cl; for(int i=head[x];i;i=edge[i].nxt) { int v=edge[i].to; if(clo[v]==cl) flag=false; else if(!clo[v]) dfs(v,3-cl); } } bool judge(int x) { for(register int i=1;i<x;i++) { if(!clo[per[i].frm]) { flag=true; dfs(per[i].frm,1); if(!flag) return false; } } return true; } int main() { scanf("%d%d",&n,&m); for(int i=1;i<=m;i++) { scanf("%d%d%d",&per[i].frm,&per[i].to,&per[i].w); } sort(per+1,per+m+1,cmp); int l=1,r=m+1; while(l+1<r)//二分答案一个冲突值,比它大的连边,将作出的图二分图染色,如果可行,继续寻找更小的答案 { memset(clo,0,sizeof clo); memset(head,0,sizeof head); cnt=0; int mid=(l+r)>>1; for(register int i=1;i<mid;i++) { add(per[i].frm,per[i].to); add(per[i].to,per[i].frm);//连边 } if(judge(mid)) {ans=per[mid].w;l=mid;} else r=mid; } if(l==m+1) printf("0\n");//如果最低怒气值仍合法输出0 else printf("%d\n",ans); return 0; }
相关文章推荐
- poj 1112 二分图染色+dp
- noip 2010 关押罪犯 (二分图染色 并茶几)
- SCU 4522 寻找fly真迹(二分图染色)
- LOJ 1009 - Back to Underworld(二分图染色)
- 洛谷 1330 封锁阳光大学 图论 二分图染色
- 洛谷 P1330 封锁阳光大学 二分图染色模板
- poj 2446 二分图最大匹配(奇偶图)网上貌似叫(黑白染色图)
- hdu5917——Wrestling Match(二分图染色)
- Codeforces 557D - Vitaly and Cycle [二分图染色]【图论】
- zoj 3370(二分+二分图染色)
- 二分图的判断--染色
- ural 1106. Two Teams 二分图染色
- CodeForce 687A 二分图 交叉染色
- HDOJ 题目2444 The Accomodation of Students(染色法判二分图,最大匹配)
- Codeforces Round #311 (Div. 2) C(技巧) *D(二分图染色)
- 南阳理工1015 (染色法判断二分图)
- GYM 100345E New Mayors(二分图染色)
- 2007-2008 Winter Petrozavodsk Camp, Andrew Stankevich Contest 30-E - New Mayors - 二分图染色 (BFS+DFS)
- POJ1112 Team Them Up![二分图染色 补图 01背包]
- 洛谷 1330 封锁阳光大学 图论 二分图染色