BZOJ1163&BZOJ1339[Baltic2008]Mafia——最小割
题目描述
输入
输出
样例输入
5 3
2
4
8
3
10
1 5
1 2
2 4
4 5
2 3
3 4
样例输出
- #include<cstdio>
- #include<algorithm>
- #include<iostream>
- #include<cstring>
- #include<cmath>
- #include<queue>
- using namespace std;
- int next[6000001];
- int to[6000001];
- int val[6000001];
- int head[6000001];
- int tot=1;
- int q[6000001];
- int n,m;
- int S,T;
- int x,y;
- int k1,k2;
- int ans;
- int d[6000001];
- const int INF=0x3f3f3f3f;
- void add(int x,int y,int v)
- {
- tot++;
- next[tot]=head[x];
- head[x]=tot;
- to[tot]=y;
- val[tot]=v;
- tot++;
- next[tot]=head[y];
- head[y]=tot;
- to[tot]=x;
- val[tot]=0;
- }
- bool bfs(int S,int T)
- {
- int r=0;
- int l=0;
- memset(d,-1,sizeof(d));
- q[r++]=S;
- d[S]=0;
- while(l<r)
- {
- int now=q[l];
- for(int i=head[now];i;i=next[i])
- {
- if(d[to[i]]==-1&&val[i]!=0)
- {
- d[to[i]]=d[now]+1;
- q[r++]=to[i];
- }
- }
- l++;
- }
- if(d[T]==-1)
- {
- return false;
- }
- else
- {
- return true;
- }
- }
- int dfs(int x,int flow)
- {
- if(x==T)
- {
- return flow;
- }
- int now_flow;
- int used=0;
- for(int i=head[x];i;i=next[i])
- {
- if(d[to[i]]==d[x]+1&&val[i]!=0)
- {
- now_flow=dfs(to[i],min(flow-used,val[i]));
- val[i]-=now_flow;
- val[i^1]+=now_flow;
- used+=now_flow;
- if(now_flow==flow)
- {
- return flow;
- }
- }
- }
- if(used==0)
- {
- d[x]=-1;
- }
- return used;
- }
- void dinic()
- {
- while(bfs(S,T)==true)
- {
- ans+=dfs(S,0x3f3f3f);
- }
- }
- int main()
- {
- scanf("%d%d",&n,&m);
- scanf("%d%d",&k1,&k2);
- S=k1;
- T=n+k2;
- for(int i=1;i<=n;i++)
- {
- scanf("%d",&x);
- add(i,n+i,x);
- }
- for(int i=1;i<=m;i++)
- {
- scanf("%d%d",&x,&y);
- add(n+x,y,INF);
- add(n+y,x,INF);
- }
- dinic();
- printf("%d",ans);
- return 0;
- }
BZOJ1163&BZOJ1339[Baltic2008]Mafia——最小割的更多相关文章
- [BZOJ1163][BZOJ1339][Baltic2008]Mafia
[BZOJ1163][BZOJ1339][Baltic2008]Mafia 试题描述 匪徒准备从一个车站转移毒品到另一个车站,警方准备进行布控. 对于每个车站进行布控都需要一定的代价,现在警方希望使用 ...
- bzoj1339[Baltic2008]Mafia*
bzoj1339[Baltic2008]Mafia 题意: 匪徒准备从一个车站转移毒品到另一个车站,警方准备进行布控.对于每个车站进行布控都需要一定的代价,现在警方希望使用最小的代价控制一些车站,使得 ...
- [BZOJ1339] [Baltic2008] Mafia / 黑手党
Description 匪徒准备从一个车站转移毒品到另一个车站,警方准备进行布控. 对于每个车站进行布控都需要一定的代价, 现在警方希望使用最小的代价控制一些车站,使得去掉这些车站后,匪徒无法从原定的 ...
- 【bzoj1163/bzoj1339】[Baltic2008]Mafia 网络流最小割
题目描述 匪徒准备从一个车站转移毒品到另一个车站,警方准备进行布控. 对于每个车站进行布控都需要一定的代价,现在警方希望使用最小的代价控制一些车站,使得去掉这些车站后,匪徒无法从原定的初始点到达目标点 ...
- bzoj1339/1163:[Baltic2008]Mafia
传送门 最小割,割点,模板... 代码: #include<cstdio> #include<iostream> #include<algorithm> #incl ...
- 1339 / 1163: [Baltic2008]Mafia
1163: [Baltic2008]Mafia Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 96 Solved: 60[Submit][Statu ...
- 1163: [Baltic2008]Mafia
1163: [Baltic2008]Mafia Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 123 Solved: 70[Submit][Stat ...
- BZOJ 1391: [Ceoi2008]order [最小割]
1391: [Ceoi2008]order Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 1509 Solved: 460[Submit][Statu ...
- BZOJ-2127-happiness(最小割)
2127: happiness(题解) Time Limit: 51 Sec Memory Limit: 259 MBSubmit: 1806 Solved: 875 Description 高一 ...
随机推荐
- 洛谷 P2256 一中校运会之百米跑
题目链接 https://www.luogu.org/problemnew/show/P2256 题目背景 在一大堆秀恩爱的**之中,来不及秀恩爱的苏大学神踏着坚定(?)的步伐走向了100米跑的起点. ...
- ftp 传输数据:命令链路连接方法是一样的,而数据链路的建立方法就完全不同
0.FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式. PORT(主动)连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请 求,服务器接受连接,建立一条命令链 ...
- Android popupMenu
popupMenu = new PopupMenu(ActivityHousesNumList.this, imageViewhousesnum1); popupMenu.getMenuInflate ...
- day89
跨域问题 同源策略(Same origin policy) 是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响.可以说Web是构建在同源策略基础之上 ...
- 常见camera测试卡
常见camera测试卡 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/luckywang1103/article/details/87166 ...
- CAN协议教程
介绍:CAN总线 CAN总线是广播类型的总线.这意味着所有节点都可以侦听到所有传输的报文.无法将报文单独发送给指定节点:所有节点都将始终捕获所有报文.但是,CAN硬件能够提供本地过滤功能,让每个节点对 ...
- zookeepeer集群搭建
一.预备工作 1.zookeepeer需要安装JDK,至于版本,大家可以去官网查询一下.这里我安装的是JDK8. 2.需要开放zookeepeer用到的端口,默认端口2181.2888.3888,至于 ...
- .NET持续集成与自动化部署之路第二篇——使用NuGet.Server搭建公司内部的Nuget(包)管理器
使用NuGet.Server搭建公司内部的Nuget(包)管理器 前言 Nuget是一个.NET平台下的开源的项目,它是Visual Studio的扩展.在使用Visual Studio开发基 ...
- 天气提醒邮件服务器(python + scrapy + yagmail)
天气提醒邮件服务器(python + scrapy + yagmail) 项目地址: https://gitee.com/jerry323/weatherReporter 前段时间因为xxx上班有时候 ...
- 第二次作业 --- 我对QQ的评测
腾讯QQ(简称“QQ”)是腾讯公司开发的一款基于Internet的即时通信(IM)软件.腾讯QQ支持在线聊天.视频通话.点对点断点续传文件.共享文件.网络硬盘.自定义面板.QQ邮箱等多种功能,并可与多 ...