POJ 1422 Air Raid(DAG最小路径覆盖)
来源:互联网 发布:阿里云域名备案号 编辑:程序博客网 时间:2024/06/05 14:31
POJ 1422 Air Raid(DAG最小路径覆盖)
http://poj.org/problem?id=1422
题意:
城市里通过交点->交点(有向)标示一条街道(不存在回路)。问空袭时,需要如何降下最少的伞兵(放到交点路口上),使得伞兵能在不重复走同样交点的条件下,所有的伞兵遍历完整个城市的所有交点。
分析:
其实每个伞兵走的就是一条有向的简单路径。我们要求的就是该DAG图的最少可以用多少条简单路径覆盖所有节点且任意两条路径不会有重复的节点。 这就是DAG的最小路径覆盖问题。
DAG最小路径覆盖问题的解 = 节点数-二分图的最大匹配。
首先要把DAG中的每个点在二分图的左右点集都保存一遍,然后对于DAG中的边i->j, 那么就在二分图中添加边左i->右j。 之后求该二分图的最大匹配边数即可。
AC代码:
#include<cstdio>#include<cstring>#include<vector>using namespace std;const int maxn=306+5;struct Max_Match{ int n,m; vector<int>g[maxn]; bool vis[maxn]; int left[maxn]; void init(int n,int m) { this->n=n; this->m=m; for(int i=1;i<=n;i++)g[i].clear(); memset(left,-1,sizeof(left)); } bool match(int u) { for(int i=0;i<g[u].size();i++){int v=g[u][i];if(!vis[v]){vis[v]=true;if(left[v]==-1 || match(left[v])){left[v]=u;return true;}}} return false; } int solve() { int ans=0; for(int i=1;i<=n;i++) { memset(vis,0,sizeof(vis)); if(match(i)) ans++; } return ans; }}MM;int main(){int n,m; int t; scanf("%d",&t); while(t--){scanf("%d%d",&n,&m);MM.init(n,n);for(int i=0;i<m;i++){int u,v;scanf("%d%d",&u,&v);MM.g[u].push_back(v);}printf("%d\n",n-MM.solve());} return 0;}
阅读全文
0 0
- POJ 1422 Air Raid(DAG最小路径覆盖)
- POJ 1422 Air Raid(DAG最小路径覆盖)
- POJ 1422 Air Raid(DAG最小路径覆盖)
- POJ1422 Air Raid 【DAG最小路径覆盖】
- Air Raid 【DAG 最小路径覆盖】
- [POJ]1422-Air Raid(最小路径覆盖)
- poj 1422Air Raid--最小路径覆盖
- poj 1422 Air Raid 最小路径覆盖
- poj 1422 Air Raid(最小路径覆盖)
- poj 1422 Air Raid(最小路径覆盖)
- poj 1422 Air Raid(最小路径覆盖)
- hdu 1151 Air Raid DaG 图的最小路径覆盖
- hdu 1151 Air Raid(DAG最小路径覆盖)
- hdu1151 Air Raid,DAG图的最小路径覆盖
- hdu 1151 Air Raid 【DAG最小路径覆盖】
- hdu 1151 Air Raid DAG最小路径覆盖
- HDU 1151 Air Raid(DAG上的最小路径覆盖)
- POJ-1422 Air Raid 最小路径覆盖模板题
- FPN Feature Pyramid Network for Object Detection
- 设计模式之单例模式的学习
- android音频音乐播放soundpool
- 对电话号码验证、掩码、加密适用匿名类处理
- bootstrap中dialog弹出框(警告/提示)
- POJ 1422 Air Raid(DAG最小路径覆盖)
- 刷题——Sunscreen POJ
- xcode安装插件
- hello myblog
- ios系统实用指南
- phpstrom 2017.1激活
- C++初始化成员列表
- SpringAOP技术学习(4种技术总结)---Day4
- (RMQ)求区间最值及其下标 模板