主要想补24题。

这是部落冲突那道题的妈

由于路径不可覆盖

顾考虑拆点。

但是还是学习了一下怎么记录路径

由于流量为1

所以直接把1的流量用掉的时候路径必然是这一条

然后处理一个next数组

递归打印

#include<bits/stdc++.h>
using namespace std;
const int INF=0x3f3f3f3f;
inline void read(int &x){x=0;int f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}x*=f;
}
const int N=10000;
struct Front_star{int u,v,w,nxt;
}e[N*4];
int cnt=1;
int first[N]={};
void addedge(int u,int v,int w){cnt++;e[cnt].u=u;e[cnt].v=v;e[cnt].w=w;e[cnt].nxt=first[u];first[u]=cnt;
}
void add(int u,int v,int w){addedge(u,v,w);addedge(v,u,0);
}
int S=0,T;
int n,m;
queue<int> Q;
int d[N]={};
int s[N]={};
int t[N]={};
int vis[N]={};
bool BFS(){Q.push(S);memset(d,-1,sizeof(d));d[S]=1;while(!Q.empty()){int x=Q.front();Q.pop();for(int i=first[x];i;i=e[i].nxt){int v=e[i].v;if(e[i].w&&d[v]==-1){d[v]=d[x]+1;Q.push(v);}}}return d[T]!=-1;
}
int DFS(int st,int ed,int nowdat){int dat=0;if(st==ed)return nowdat;for(int i=first[st];i;i=e[i].nxt){int v=e[i].v;if(e[i].w&&d[v]==d[st]+1){int now=min(e[i].w,nowdat-dat);now=DFS(v,ed,now);dat+=now;e[i].w-=now;e[i^1].w+=now;if(now!=0&&st!=S&&v!=T){s[st]=v-n;t[v-n]=st;}}}if(!dat)d[st]=-2;return dat;
}
void dfs(int x){if(x==0)return;
//  cout<<s[x]<<'\n';cout<<x<<" ";if(s[x]!=x)dfs(s[x]);vis[x]=1;}
void MCMF(){int ret=0;while(BFS()){ret+=DFS(S,T,INF);}for(int i=1;i<=n;i++){if(!vis[i]){dfs(i);cout<<'\n';}}cout<<n-ret;
}
int main(){read(n);read(m);T=2*n+1;for(int i=1;i<=m;i++){int u,v;read(u);read(v);add(u,v+n,1);}for(int i=1;i<=n;i++){add(S,i,1);add(i+n,T,1);}MCMF();return 0;
}

转载于:https://www.cnblogs.com/Leo-JAM/p/10079208.html

省选专练【网络流24题】最小路径覆盖问题相关推荐

  1. 网络流24题 最小路径覆盖问题

    Description 问题描述: 给定有向图G=(V,E).设P 是G 的一个简单路(顶点不相交)的集合.如果V 中每个顶点恰好在P 的一条路上,则称P是G 的一个路径覆盖.P 中路径可以从V 的任 ...

  2. [网络流24题]最小路径覆盖问题

    题目描述 对于一个路径覆盖会有两个性质: 1.每个点属于且只属于一条路径: 2.在每条路径中,除终点外,每个点只有一条边可以通向路径中的另外一个点. 所以可以把每个点拆成两个点,一个是起始点,一个是目 ...

  3. 【网络流24题】D、魔术球问题(有向无环图的最小路径覆盖、思维)

    D.魔术球问题(有向无环图的最小路径覆盖.思维)[省选/NOI- ] P2765 魔术球问题 [问题分析] 枚举答案转化为判定性问题,然后最小路径覆盖,可以转化成二分图最大匹配,从而用最大流解决. [ ...

  4. 734. [网络流24题] 方格取数问题 二分图点权最大独立集/最小割/最大流

    «问题描述: 在一个有m*n 个方格的棋盘中,每个方格中有一个正整数.现要从方格中取数,使任 意2 个数所在方格没有公共边,且取出的数的总和最大.试设计一个满足要求的取数算法. «编程任务: 对于给定 ...

  5. 【网络流24题】餐巾计划问题(最小费用最大流)

    [网络流24题]餐巾计划问题(最小费用最大流) 题面 COGS 洛谷上的数据范围更大,而且要开longlong 题解 餐巾的来源分为两种: ①新买的 ②旧的拿去洗 所以,两种情况分别建图 先考虑第一种 ...

  6. 【网络流24题】 No.3 最小路径覆盖问题 (网络流|匈牙利算法 -最大二分匹配)...

    [题意] 给定有向图 G=(V,E).设 P 是 G 的一个简单路(顶点不相交) 的集合.如果 V 中每个 顶点恰好在 P 的一条路上,则称 P 是 G 的一个路径覆盖. P 中路径可以从 V 的任何 ...

  7. 最大流 ---- 最小路径覆盖 ---- P2765魔术球问题(网络流24题)

    题目链接 解题思路: 这题题目看起来根本不像网络流但是确实用网络流做的 这个题目有两个限制 每个柱子上面的球相邻两个的和必须是平方数 球的编号必须是连续的 首先我们只考虑第一个条件的话,我们怎么转化成 ...

  8. 【网络流24题】解题报告:C、最小路径覆盖问题(有向无环图最小路径覆盖)(最大流)

    C.最小路径覆盖问题(有向无环图最小路径覆盖)(最大流)[省选/NOI- ] 拆点最大流 [问题分析] 有向无环图最小路径覆盖,可以转化成二分图最大匹配问题,从而用最大流解决. [建模方法] 构造二分 ...

  9. 【网络流24题】最小路径覆盖问题

    [题目]1738: 最小路径覆盖问题 [题解]网络流 关于输出路径,因为即使有反向弧经过左侧点也一定会改变左侧点的去向,若没连向右侧就会被更新到0,所以不用在意. mark记录有入度的右侧点,然后从没 ...

  10. 流网络的最小割问题c语言,「网络流24题」最小路径覆盖问题

    Description 问题描述: 给定有向图G=(V,E).设P 是G 的一个简单路(顶点不相交)的集合.如果V 中每个顶点恰好在P 的一条路上,则称P是G 的一个路径覆盖.P 中路径可以从V 的任 ...

最新文章

  1. R语言ggplot2可视化删除所有分面图(facet_wrap可视化的facet结果)的标签实战(Remove facet_wrap labels)
  2. python计算时间差
  3. iOS 进阶之底层原理一OC对象原理alloc做了什么
  4. c++调用cplex求解例子_Java调用cplex求解运输问题
  5. 讲字节数组转化为base64_Base64编码简介及简单实现
  6. [十二省联考 2019] 异或粽子(可持久化字典树 + 二叉堆)
  7. 玩转oracle 11g(27):ora-12154和客户端版本低
  8. 40张图+万字,从9个数据类型帮你稳稳的拿捏Redis数据结构
  9. linux mono运行c 1,不装mono,你的.NET程序照样可以在Linux上运行!
  10. seam中格式化文本的处理
  11. 数据结构复习之【线性表】
  12. tensorflow机器学习实战指南 源代码_小小白TensorFlow机器学习实战基础
  13. 拟阵论 贪心策略的数学基础
  14. 花里胡哨的c语言程序,通达信花里胡哨主图公式源码
  15. php tp框架验证,tp5.1验证 - thinkphp5.1框架学习 - php中文网博客
  16. 解读Depth Map Prediction from a Single Image using a Multi-Scale Deep Network (3)
  17. layer在html中的data写法,layerdate.html
  18. CentOS7常用软件安装配置说明
  19. PC微信机器人之实战分析通过wxid获取用户信息
  20. python 抓网卡数据包 解析wifi_某高校校园网WIFI嗅探用户名密码实践

热门文章

  1. FB正在大规模重构React Native,预计今年发布
  2. mysql 登录及常用命令
  3. leetcode------Binary Tree Level Order Traversal II
  4. 交换排序 java_Java交换排序:冒泡排序和快速排序
  5. python统计图的三层结构设计代码_【Python数据可视化】用Matplotlib绘制常见统计图,中文显示字体任意设置...
  6. python删除文件_python删除指定类型(或非指定)的文件实例详解
  7. mysql 搜索_MySQL模糊搜索的几种姿势
  8. 根据二叉树的先序、中序遍历结果重建二叉树
  9. vue无法监听对象的属性的增加和删除
  10. 手把手教你Windows环境下配置Git环境