网络流小结+[jzyzoj p1320] patrol
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<cstdlib>
using namespace std;
const int minf=;
int n,m;
struct nod{
int rev;
int y;
int next;
int v;
}e[];
int head[]={};
int tot=;
bool vis[]={};
inline void init(int x,int y,int v,int rev){
e[++tot].y=y;
e[tot].next=head[x];
e[tot].v=v;
e[tot].rev=rev;
head[x]=tot;
}
inline int dis(int x){
return x+n;
}
int dfs(int s,int t,int f){
if(s==t){
return f;
}
vis[s]=;
for(int i=head[s];i;i=e[i].next){
int v=e[i].v,y=e[i].y;
if(vis[y]==&&v>){
int d=dfs(y,t,min(f,v));
if(d>){
e[i].v-=d;
e[e[i].rev].v+=d;
return d;
}
}
}
return ;
}
int main(){
//freopen("wtf.in","r",stdin);
scanf("%d%d",&n,&m);
int x,y;
for(int i=;i<n;i++){
init(i,i+n,,tot+);
init(i+n,i,,tot);
}
for(int i=;i<=m;i++){
scanf("%d%d",&x,&y);
if(x>y){
swap(x,y);
}
if(y==n){
init(x+n,y,,tot+);
init(y,x+n,,tot);
init(y,x+n,,tot+);
init(x+n,y,,tot);
}
else if(x==){
init(,y,,tot+);
init(y,,,tot);
init(y,,,tot+);
init(,y,,tot);
}
else{
init(x+n,y,,tot+);
init(y,x+n,,tot);
init(y+n,x,,tot+);
init(x,y+n,,tot);
}
}
int ans=;
for(;;){
memset(vis,,sizeof(vis));
int f=dfs(,n,minf);
if(f==){
break;
}
ans+=f;
}
if(ans==){
printf("%d\n",ans);
}
else
printf("%d\n",ans-);
return ;
}
网络流小结+[jzyzoj p1320] patrol的更多相关文章
- 【jzyzoj】【p1320 patrol】 巡逻(网络流最小割例题)
描述 Description FJ有个农场,其中有n块土地,由m条边连起来.FJ的养牛场在土地1,在土地n有个新开张的雪糕店.Bessie经常偷偷溜到雪糕店,当Bessie去的时候,FJ就要跟上她.但 ...
- 网络流小结(HNOI2019之前)
\(\text{一:Dinic最大流}\) 最坏复杂度 \({\mathcal O(n^2m)}\) 一般可以处理 \(10^4\) ~ \(10^5\) 的网络. struct Edge { int ...
- BZOJ 1497 JZYZOJ 1344 [NOI2006]最大获利 网络流 最大权闭合图
http://www.lydsy.com/JudgeOnline/problem.php?id=1497 http://172.20.6.3/Problem_Show.asp?id=1344 思路 ...
- [bzoj1565][NOI2009]植物大战僵尸_网络流_拓扑排序
植物大战僵尸 bzoj1565 题目大意:给你一张网格图,上面种着一些植物.你从网格的最右侧开始进攻.每个植物可以对僵尸提供能量或者消耗僵尸的能量.每个植物可以保护一个特定网格内的植物,如果一个植物被 ...
- [bzoj1497][NOI2006]最大获利_网络流_最小割
最大获利 bzoj-1497 题目大意:可以建立一个点,花费一定的代价:将已经建立的两个点之间连边,得到一定收益.有些节点之间是不允许连边的. 注释:1<=点数<=5,000,1<= ...
- [luogu1402]酒店之王_网络流
酒店之王 luogu-1402 题目大意:有n个人,p道菜,q个房间,每个人喜欢吃一些菜.喜欢住一些房间,如果一个人即住到了他喜欢的房间有吃到了他喜欢的菜,就对答案贡献++,求最大贡献. 注释:1&l ...
- [jdoj1817]Drainage Ditches_网络流
Drainage Ditches jdoj-1817 题目大意:网络流裸求最大流 注释:n(点数),m(边数)<=200. 想法:裸的网络流求最大流,用bfs+dfs,美其名曰dinic. 没有 ...
- 网络流 最大流—最小割 之SAP算法 详解
首先引入几个新名词: 1.距离标号: 所谓距离标号 ,就是某个点到汇点的最少的弧的数量(即边权值为1时某个点到汇点的最短路径长度). 设点i的标号为level[i],那么如果将满足level[i]=l ...
- 【做题】POJ3469 Dual Core CPU——第一道网络流
刚学了Dinic就开始做题,然后就崩了. 题意:若干个任务,可以放在两个CPU中任意一个上完成,各有一定代价.其中又有若干对任务,如果它们不在同一个CPU上完成,会产生额外代价.最小化并输出代价. 一 ...
随机推荐
- 【LibreOJ】#6298. 「CodePlus 2018 3 月赛」华尔兹 BFS
[题意]给定n*m的网格,起点和终点位置,一些格指定下一步的方向,一些格任意.要求为方向任意的格确定方向,使起点可以走到终点.n,m<=50. [算法]BFS [题解]这道题最好用BFS,因为D ...
- flask插件系列之SQLAlchemy实用技巧
下面记录一下SQLAlchemy使用的技巧. 在多模块下定义models 如果由多个蓝图下读定义了model模块,在初始化的时候需要加载到上下文中. 当使用flask_Migrate迁移数据库的时候, ...
- 关于IdByName 为什么一个消息主题要有 Id和 Name的解释
- Base64的好处
1. 昨天的<MIME笔记>中提到,MIME主要使用两种编码转换方式----Quoted-printable和Base64----将8位的非英语字符转化为7位的ASCII字符. 虽然这样的 ...
- you have to first modify the default Eclipse configuration to avoid XML cosmetic errors:
Configure XML Validation to Avoid Cosmetic Errors Navigate to: Window->Preferences->XML->XM ...
- 开发 ASP.NET vNext 初步总结(使用Visual Studio 2015 Preview )
新特性: vNext又称MVC 6.0,不再需要依赖System.Web,占用的内存大大减少(从前无论是多么简单的一个请求,System.Web本身就要占用31KB内存). 可以self-host模式 ...
- vuejs学习——vue+vuex+vue-router项目搭建(二)
前言 最近比较忙,所有第二章发布晚了,不好意思各位. vuejs学习——vue+vuex+vue-router项目搭建(一) 中我们搭建好了vue项目,我相信大家已经体验了vue其中的奥妙了,接下来我 ...
- chrome浏览器插件开发经验(一)
最近在进行chrome浏览器插件的开发,一些小的经验总结随笔. 1.首先,推荐360的chrome插件开发文档:http://open.chrome.360.cn/extension_dev/over ...
- LoadRunner中自定义C函数实现字符串替换
.在globals.h 中定义一个函数ReplaceStr,实现字符串的替换: int ReplaceStr(char* sSrc, char* sMatchStr, char* sReplaceSt ...
- bzoj 1880 最短路径图
#include<bits/stdc++.h> #define LL long long #define fi first #define se second #define mk mak ...