[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 ...
随机推荐
- MySQL 目录结构信息
bin 目录,存储可执行文件. data 目录,存储数据文件. docs 目录,文档. include 目录,存储包含的头文件. lib 目录,存储库文件. share 目录,错误信息和字符集文件.
- Python机器学习算法 — 决策树(Decision Tree)
决策树 -- 简介 决策树(decision tree)一般都是自上而下的来生成的.每个决策或事件(即自然状态)都可能引出两个或多个事件,导致不同的结果,把这种决策分支画成图形很像一棵 ...
- spring的annotation
spring容器创建bean对象的方式: 1,使用反射调用无参构造器来创建实例(前提是这个类有无参构造器)(常规方式) 2,通过工厂类获得实例(工厂类实现了接口FactoryBean<?> ...
- [转]C语言文件操作函数大全(超详细)
fopen(打开文件)相关函数 open,fclose表头文件 #include<stdio.h>定义函数 FILE * fopen(const char * path,const cha ...
- 题解报告:poj 3669 Meteor Shower(bfs)
Description Bessie hears that an extraordinary meteor shower is coming; reports say that these meteo ...
- HTML基础2——综合案例2——复杂的嵌套列表
<html> <head> <title></title> </head> <body> <ul type="d ...
- redis学习-字典
1.字典作用 实现数据库键空间(key space): 用作 Hash 类型键的底层实现之一: 2.字典实现的数据结构 typedef struct dict { // 特定于类型的处理函数 dict ...
- 利用反射重写toString()方法
为了方便输出对象,Object类提供了toString()方法.但是该方法的默认值是由类名和哈希码组成的,实用性并不强.通常需要重写该方法以提供更多的信息.本实例使用反射输出类的包.类的名字.类的公共 ...
- Selenium学习第二天,了解Selenium工作模式与学习Selenium需要具备的知识与工具。
Selenium学习网站: 1.http://www.ltesting.net/ceshi/open/kygncsgj/selenium/2014/0408/207237.html——好像是对API的 ...
- tensorFlow资源
1,[莫烦]Tensorflow tutorials (Eng Sub) 神经网络 http://www.bilibili.com/video/av10118932/index_35.html#pag ...