poj1422 Air Raid 最小路径覆盖=顶点数-最大匹配数
来源:互联网 发布:慢跑减肥 知乎 编辑:程序博客网 时间:2024/06/06 03:10
这是一道最小路径覆盖的题目,做最小路径的题目会有一个拆点的操作出现,我这里的拆点操作顺带做好了,并不是很明显,poj3020就很清楚了;
给个poj3020的博客,拆点操作写的很详细 http://blog.csdn.net/lyy289065406/article/details/6647040,这里的拆点操作讲的很好的,大神嘛就是不一样
接下来给一个 链接 是这道题目也就是poj1422的另一个人的博客,他的那个做法 把拆点表现的比较明显 http://blog.csdn.net/wangjian8006/article/details/7965213,也是个大神,他把拆点那里的操作表现的很明显
接下来贴一下我的做法
题意:有n个点和m条有向边,现在要在点上放一些伞兵,然后伞兵沿着图走,直到不能走为止
每条边只能是一个伞兵走过,问最少放多少个伞兵
#include<iostream>#include<cstdio>#include<list>#include<algorithm>#include<cstring>#include<string>#include<queue>#include<stack>#include<map>#include<vector>#include<cmath>#include<memory.h>#include<set>#define ll long long#define LL __int64#define eps 1e-8const ll INF=9999999999999;using namespace std;#define M 400000100#define inf 0xfffffff//vector<pair<int,int> > G;//typedef pair<int,int> P;//vector<pair<int,int>> ::iterator iter;////map<ll,int>mp;//map<ll,int>::iterator p;vector<int>G[1212];char tempmp[1212][1212];int mp[1212][1212];int marry[1212];bool vis[1212];int dis[2][4]={0,-1,0,1,1,0,-1,0};int n,m;void clear(){memset(marry,-1,sizeof(marry));memset(mp,0,sizeof(mp));/*for(int i=0;i<1012;i++)G[i].clear();*/}bool dfs(int x){for(int i=1;i<=n;i++){if(mp[x][i] && !vis[i]){vis[i]=true;if(marry[i]==-1 || dfs(marry[i])){marry[i]=x;return 1;}}}return 0;}int main(void){int t;cin>>t;while(t--){clear();cin>>n>>m;int u,v;for(int i=0;i<m;i++){cin>>u>>v;mp[u][v]=1;}int ans=0;for(int i=1;i<=n;i++){memset(vis,false,sizeof(vis));if(dfs(i))ans++;}cout<<n-ans<<endl;//最小路径覆盖=顶点数-最大匹配数}}
- poj1422 Air Raid 最小路径覆盖=顶点数-最大匹配数
- HDU 1151 Air Raid(最小路径覆盖 = 顶点数 - 最大匹配数)
- Air Raid(最小路径覆盖数=节点数-最大匹配数)
- poj1422 zoj1525 Air Raid 最小路径覆盖
- POJ1422 Air Raid 【DAG最小路径覆盖】
- POJ1422-Air Raid(最小路径覆盖)
- 最小路径覆盖 poj1422 Air Raid
- Air Raid POJ1422 & HDU1151 最小路径覆盖
- POJ 3020 最小路径覆盖 = 顶点数-最大匹配数 二分匹配
- HDU 4160 最小路径覆盖 = 顶点数 - 最大匹配数 二分匹配
- HDU 4160 Dolls (最小路径覆盖=顶点数-最大匹配数)
- poj2594 Treasure Exploration 最小路径覆盖=顶点数-最大匹配数
- poj2060 Taxi Cab Scheme 最小路径覆盖=顶点数-最大匹配数
- POJ1422 Air Raid【二分图最小路径覆盖】
- 最小路径覆盖(二分图最大匹配):Air Raid
- hdu 1151 Air Raid 最小路径覆盖(最大匹配)
- HDU 3729 I'm Telling the Truth (最小路径覆盖=顶点数-最大匹配数)
- poj3020 匈牙利算法+公式:二分无向图的最小路径覆盖 = 顶点数 - 最大二分匹配数 / 2
- Evaluation:正确率P、召回率R、F值、P@4和平均正确率AP,MAP值等
- Anti-prime sequence (P2034)
- 多媒体方向会议
- UVA 10564Paths through the Hourglass(dp)
- win7锁屏背景壁纸修改
- poj1422 Air Raid 最小路径覆盖=顶点数-最大匹配数
- shell 字符串操作小结
- 杭电acm2019数列有序
- 27-Dialog练习题,点击弹出一个对话框,选项是一个列表
- spring+jta实现全局事物管理
- 豆瓣出错:java.lang.NoClassDefFoundError: com.google.gdata.client.douban.DoubanService
- Drag and Drop in WPF
- 复述抽取生成doc04-实现02-对给定句子搜索相关的句子
- 关于求FIRST集和FOLLOW集