USACO 2005 Nov Asteroids 小行星群
来源:互联网 发布:catti监控linux主机 编辑:程序博客网 时间:2024/04/28 07:08
#include<cstdio>#include<cstring>const int MAXN=500;const int MAXM=10000;const int MAX=MAXM*2+MAXN*4+10;const int INF=1;int n,m;int first[MAXN*2+3],k,next[MAX],head[MAX],tail[MAX],c[MAX],s,t;int q[MAXN*2+3],qhead,qtail;int d[MAXN*2+3];int ans;bool linked[MAXN*2+3][MAXN*2+3];inline void open_file(void){freopen("asteroid.in","r",stdin);freopen("asteroid.out","w",stdout);}inline int getint(void){int a;scanf("%d",&a);return a;}inline void addedge(int u,int v,int k,int w){next[k]=first[u];first[u]=k;head[k]=u;tail[k]=v;c[k]=w;}inline void init(void){n=getint();m=getint();s=n*2+1;t=s+1;for(int i=1;i<=m;i++){int r=getint(),c=getint();if(!linked[s][r]){k+=2;addedge(s,r,k,1);addedge(r,s,k^1,0);linked[s][r]=true;}if(!linked[c+n][t]){k+=2;addedge(c+n,t,k,1);addedge(t,c+n,k^1,0);linked[c+n][t]=true;}k+=2;addedge(r,c+n,k,1);addedge(c+n,r,k^1,0);}}inline bool bfs(void){memset(d,0,sizeof(d));qhead=0;qtail=0;d[t]=1;q[qtail++]=t;while(qhead<qtail){int u=q[qhead++];for(int e=first[u];e;e=next[e]){int v=tail[e];if(!d[v]&&c[e^1]){q[qtail++]=v;d[v]=d[u]+1;if(v==s)return true;}}}return false;}int dfs(int u,int b){if(u==t)return b;int r=0,tmp=0;for(int e=first[u];e;e=next[e]){int v=tail[e];if(d[v]<d[u]&&c[e]){tmp=dfs(v,(b-r)<c[e]?(b-r):c[e]);c[e]-=tmp;c[e^1]+=tmp;r+=tmp;}}return r;}inline void solve(void){while(bfs()){ans+=dfs(s,INF);}}inline void output(void){printf("%d\n",ans);}inline void close_file(void){fclose(stdin);fclose(stdout);}int main(int argc,char *argv[]){open_file();init();solve();output();close_file();return 0;}
这道题吧,其实就是求一个二分图最小点覆盖。
根据定理,可知二分图最小点覆盖=二分图最大匹配=二分图最大流
所以吧,其实网络流就能做了。
0 0
- USACO 2005 Nov Asteroids 小行星群
- 【JZOJ1922】【Usaco 2005 NOV Gold】小行星群
- [Usaco2005 nov]Asteroids 穿越小行星群
- bzoj 1741: [Usaco2005 nov]Asteroids 穿越小行星群
- bzoj 1741: [Usaco2005 nov]Asteroids 穿越小行星群 网络流
- bzoj 1741: [Usaco2005 nov]Asteroids 穿越小行星群
- BZOJ 1741: [Usaco2005 nov]Asteroids 穿越小行星群
- BZOJ 1741 [Usaco2005 nov]Asteroids 穿越小行星群题解
- bzoj 1741: [Usaco2005 nov]Asteroids 穿越小行星群 网络流
- BZOJ 1741 [Usaco2005 nov]Asteroids 穿越小行星群 二分图最小覆盖
- BZOJ 1741 [Usaco2005 nov]Asteroids 穿越小行星群 二分图最小边覆盖
- USACO 2005 Nov Cow Acrobats 奶牛杂技
- Fliptile(USACO 2007 Nov)
- POJ 3041 Asteroids(摧毁小行星,二分图)
- BZOJ 1694 & 1742 [Usaco 2005 nov] 区间DP 解题报告
- 游戏感:虚拟感觉的游戏设计师指南——第十二章 Asteroids(小行星)
- [POJ 3041][USACO 2005] Asteroids Hungary算法求最小点覆盖
- USACO 2004 Nov Apple Catching 接住苹果
- wikioi 3297 木材加工
- Note:重新看PE1,PE2,PE3
- OCP-1Z0-053-200题-147题-59
- Quartz2D——CGContext 属性设置
- Cracking the coding interview--Q2.5
- USACO 2005 Nov Asteroids 小行星群
- USACO 2009 Mar Earthquake Damage 2 地震破坏
- Programming Hive Chapter1-6 读书笔记
- USACO 2007 OPEN Dining 奶牛晚宴
- Programming HIVE Chapter 7-14 读书笔记
- USACO 2010 Feb Chocolate Giving 领取巧克力
- hadoop namenode -format格式化名称节点时出错
- USACO 2009 Feb Revamping Trails 道路翻新
- 怒删了很多东西