[BZOJ1163&1339]Mafia
[Baltic2008]Mafia
题目
匪徒准备从一个车站转移毒品到另一个车站,警方准备进行布控. 对于每个车站进行布控都需要一定的代价,现在警方希望使用最小的代价控制一些车站,使得去掉这些车站后,匪徒无法从原定的初始点到达目标点
INPUT
第一行输入N,M代表车站的总个数,及有多少条双向边连接它们. 2<=n<=200 , 1 <=m<=20000. 第二行给出两个数a,b,代表匪徒的出发点及目标点.1<=a,b<=N,a<>b. 再下来有N行,给出对第i个车站进行布控所需要的Money,其不超过10 000 000 再下来M行,用于描述图的结构.
OUTPUT
最少需要多少Money
SAMPLE
INPUT
5 6
5 3
2
4
8
3
10
1 5
1 2
2 4
4 5
2 3
3 4OUTPUT
5
解题报告
本命题QWQ
我的Mafia啊QWQ
其实就是个裸的最小割QWQ
#include <iostream>
#include <cstring>
#include <cstdio>
#include <queue>
using namespace std;
inline int read(){
int sum();char ch(getchar());
for(;ch<''||ch>'';ch=getchar());
for(;ch>=''&&ch<='';sum=sum*+(ch^),ch=getchar());
return sum;
}
struct edge{int e,w;edge *n,*rev;}*pre[];
inline void insert(int s,int e,int w){
edge *tp1(new edge),*tp2(new edge);
tp1->e=e;tp1->w=w;tp1->rev=tp2;tp1->n=pre[s];pre[s]=tp1;
tp2->e=s;tp2->w=;tp2->rev=tp1;tp2->n=pre[e];pre[e]=tp2;
}
const int inf(0x3f3f3f3f);
int n,m,a,b,S,T,ans,dis[];
queue<int>q;
inline bool bfs(){
memset(dis,,sizeof(dis));while(!q.empty())q.pop();dis[S]=;q.push(S);
while(!q.empty()){
int k(q.front());q.pop();
for(edge *i=pre[k];i;i=i->n)
if(i->w&&!dis[i->e]){
dis[i->e]=dis[k]+;
if(i->e==T)return true;
q.push(i->e);
}
}
return false;
}
inline int dfs(int u,int f){
if(u==T||!f)return f;
int ret();
for(edge *i=pre[u];i;i=i->n)
if(i->w&&dis[i->e]==dis[u]+){
int tmp(dfs(i->e,min(i->w,f-ret)));
i->w-=tmp;i->rev->w+=tmp;ret+=tmp;
if(ret==f)break;
}
return ret;
}
int main(){
n=read(),m=read(),a=read(),b=read();S=,T=(n<<)+;
insert(S,a,inf);insert(b+n,T,inf);
for(int i=;i<=n;++i){int x(read());insert(i,i+n,x);}
for(int i=;i<=m;++i){
int x(read()),y(read());
insert(x+n,y,inf);insert(y+n,x,inf);
}
while(bfs())ans+=dfs(S,inf);
printf("%d",ans);
}
[BZOJ1163&1339]Mafia的更多相关文章
- [BZOJ1163][BZOJ1339][Baltic2008]Mafia
[BZOJ1163][BZOJ1339][Baltic2008]Mafia 试题描述 匪徒准备从一个车站转移毒品到另一个车站,警方准备进行布控. 对于每个车站进行布控都需要一定的代价,现在警方希望使用 ...
- 1339 / 1163: [Baltic2008]Mafia
1163: [Baltic2008]Mafia Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 96 Solved: 60[Submit][Statu ...
- BZOJ1163&BZOJ1339[Baltic2008]Mafia——最小割
题目描述 匪徒准备从一个车站转移毒品到另一个车站,警方准备进行布控. 对于每个车站进行布控都需要一定的代价,现在警 方希望使用最小的代价控制一些车站,使得去掉这些车站后,匪徒无法从原定的初始点到达目标 ...
- 【bzoj1163/bzoj1339】[Baltic2008]Mafia 网络流最小割
题目描述 匪徒准备从一个车站转移毒品到另一个车站,警方准备进行布控. 对于每个车站进行布控都需要一定的代价,现在警方希望使用最小的代价控制一些车站,使得去掉这些车站后,匪徒无法从原定的初始点到达目标点 ...
- ural 1339. Babies
1339. Babies Time limit: 1.0 secondMemory limit: 64 MB O tempora! O mores! Present-day babies progre ...
- csu oj 1339: 最后一滴血
http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1339 1339: 最后一滴血 Time Limit: 1 Sec Memory Limit: 1 ...
- UVa 1339,紫书P73,词频
题目链接:https://uva.onlinejudge.org/external/13/1339.pdf 紫书P73 解题报告: #include <stdio.h> #include ...
- UVa 1339 Ancient Cipher --- 水题
UVa 1339 题目大意:给定两个长度相同且不超过100个字符的字符串,判断能否把其中一个字符串重排后,然后对26个字母一一做一个映射,使得两个字符串相同 解题思路:字母可以重排,那么次序便不重要, ...
- Codeforces Gym 100733H Designation in the Mafia flyod
Designation in the MafiaTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/c ...
随机推荐
- E20170612-sl
tampon n. 卫生棉塞; 止血棉塞; sanitary n. 公共厕所; adj. 卫生的; 清洁的; belonging n. 附属品,附件,属性; ...
- JavaSwing输入对话框,点击取消抛出异常的解决方法
在做产品管理系统的时候,遇到一个问题: 在得到一个输入框对话框的时候 String textPrice = JOptionPane.showInputDialog("请输入要调整的价格增(减 ...
- [App Store Connect帮助]五、管理构建版本(2)查看构建版本和文件大小
您可以查看您为某个 App 上传的所有构建版本,和由 App Store 创建的变体版本的大小.一些构建版本在该 App 发布到 App Store 上后可能不会显示. 必要职能:“帐户持有人”职能. ...
- Unity项目 - Boids集群模拟算法
1987年Craig W.Reynolds发表一篇名为<鸟群.牧群.鱼群:分布式行为模式>的论文,描述了一种非常简单的.以面向对象思维模拟群体类行为的方法,称之为 Boids ,Boids ...
- Spark学习笔记1:Application,Driver,Job,Task,Stage理解
看了spark的原始论文和相关资料,对spark中的一些经常用到的术语做了一些梳理,记录下. 1,Application application(应用)其实就是用spark-submit提交的程序.比 ...
- Oracle数据库数据显示乱码问题解决方法。
一.问题描述: 在将其它数据库的数据导出文件导入本地新建数据库时,所导入的数据全部是乱码,一般表现为数据表中列的值类似于"?????",即内容大部分为?的表现形式.初步 ...
- 专题五:TCP编程
前言 前面专题的例子都是基于应用层上的HTTP协议的介绍, 现在本专题来介绍下传输层协议——TCP协议,主要介绍下TCP协议的工作过程和基于TCP协议的一个简单的通信程序,下面就开始本专题的正文了. ...
- GLPI开源资产管理系统
GLPI一款资产管理系统,功能比较强大,东西比较多,放张图,有机会再深入研究
- codeforces_333B_水过
B. Chips time limit per test 1 second memory limit per test 256 megabytes input standard input outpu ...
- Xamarin.Forms android实现沉浸式
在android项目里,这样设置 using System; using Android.App; using Android.Content.PM; using Android.Runtime; u ...