bzoj 4439: [Swerc2015]Landscaping -- 最小割
4439: [Swerc2015]Landscaping
Time Limit: 2 Sec Memory Limit: 512 MB
Description
Input
Output
1<=A,B<=100000
Sample Input
...#
#..#
...#
##..
###.
Sample Output
样例解释:
把(2,1)的高地变成低地花费2000,燃料花费9000
HINT
我们以源点向高处,低处向汇点连权值为 B 的边,在相邻的点连权值为 A 的边,然后跑最小割
#include<map>
#include<cmath>
#include<queue>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
#define ll long long
#define N 100010
int n,m,S,T;
inline int pos(int i,int j){return (i-)*m+j;}
char str[];
int lj[N],to[N],v[N],fro[N],cnt=;
void add(int a,int b,int c){fro[++cnt]=lj[a];to[cnt]=b;v[cnt]=c;lj[a]=cnt;}
void ins(int a,int b,int c){add(a,b,c);add(b,a,);}
int q[N],dis[N],l,r;
bool bfs()
{
int x;l=;r=;
memset(dis,,sizeof(dis));
dis[S]=;q[]=S;
while(l!=r)
{
x=q[l++];if(l==N) l=;
for(int i=lj[x];i;i=fro[i])
{
if(v[i]&&!dis[to[i]])
{
dis[to[i]]=dis[x]+;
if(to[i]==T) return ;
q[r++]=to[i];if(r==N) r=;
}
}
}
return ;
}
int dfs(int x,int p)
{
if(x==T) return p;
int tp,res=;
for(int i=lj[x];i;i=fro[i])
{
if(v[i]&&dis[to[i]]==dis[x]+)
{
tp=dfs(to[i],min(p-res,v[i]));
v[i]-=tp;v[i^]+=tp;
res+=tp;
if(res==p) return p;
}
}
if(res==) dis[x]=;
return res;
}
int a,b,ans;
int main()
{
scanf("%d%d%d%d",&n,&m,&a,&b);
S=;T=n*m+;
for(int i=;i<=n;i++)
{
scanf("%s",str+);
for(int j=;j<=m;j++)
{
if(str[j]=='#') ins(S,pos(i,j),b);
else ins(pos(i,j),T,b);
}
}
for(int i=;i<=n;i++)
{
for(int j=;j<=m;j++)
{
if(i>) ins(pos(i,j),pos(i-,j),a);
if(i<n) ins(pos(i,j),pos(i+,j),a);
if(j>) ins(pos(i,j),pos(i,j-),a);
if(j<m) ins(pos(i,j),pos(i,j+),a);
}
}
while(bfs()) ans+=dfs(S,0x3f3f3f3f);
printf("%d\n",ans);
return ;
}
bzoj 4439: [Swerc2015]Landscaping -- 最小割的更多相关文章
- 【BZOJ4439】[Swerc2015]Landscaping 最小割
[BZOJ4439][Swerc2015]Landscaping Description FJ有一块N*M的矩形田地,有两种地形高地(用‘#’表示)和低地(用‘.’表示) FJ需要对每一行田地从左到右 ...
- BZOJ_4439_[Swerc2015]Landscaping_最小割
BZOJ_4439_[Swerc2015]Landscaping_最小割 Description FJ有一块N*M的矩形田地,有两种地形高地(用‘#’表示)和低地(用‘.’表示) FJ需要对每一行田地 ...
- [BZOJ 2127] happiness 【最小割】
题目链接:BZOJ - 2127 题目分析 首先,每个人要么学文科,要么学理科,所以可以想到是一个最小割模型. 我们就确定一个人如果和 S 相连就是学文,如果和 T 相连就是学理. 那么我们再来确定建 ...
- BZOJ.3532.[SDOI2014]LIS(最小割ISAP 退流)
BZOJ 洛谷 \(LIS\)..经典模型? 令\(f_i\)表示以\(i\)结尾的\(LIS\)长度. 如果\(f_i=1\),连边\((S,i,INF)\):如果\(f_i=\max\limits ...
- BZOJ 2561 最小生成树 | 网络流 最小割
链接 BZOJ 2561 题解 用Kruskal算法的思路来考虑,边(u, v, L)可能出现在最小生成树上,就是说对于所有边权小于L的边,u和v不能连通,即求最小割: 对于最大生成树的情况也一样.容 ...
- bzoj 1497 最大获利 - 最小割
新的技术正冲击着手机通讯市场,对于各大运营商来说,这既是机遇,更是挑战.THU集团旗下的CS&T通讯公司在新一代通讯技术血战的前夜,需要做太多的准备工作,仅就站址选择一项,就需要完成前期市场研 ...
- BZOJ 1391: [Ceoi2008]order [最小割]
1391: [Ceoi2008]order Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 1509 Solved: 460[Submit][Statu ...
- BZOJ 1797: [Ahoi2009]Mincut 最小割
1797: [Ahoi2009]Mincut 最小割 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2076 Solved: 885[Submit] ...
- BZOJ 3144 切糕(最小割)
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=3144 题意: 思路:我们假设没有那个D的限制.这样就简 单了.贪心的话,我们只要在每一个 ...
随机推荐
- Go语言 8 反射
文章由作者马志国在博客园的原创,若转载请于明显处标记出处:http://www.cnblogs.com/mazg/ Go学习群:415660935 8.1概念和作用 Reflection(反射)在计算 ...
- JS几个常用的工具函数
一个项目中JS也不可避免会出现重用,所以可以像Java一样抽成工具类,下面总结了几个常用的函数: 1.日期处理函数 将日期返回按指定格式处理过的字符串: function Format(now,mas ...
- Java从零到企业级电商项目实战
欢迎关注我的微信公众号:"Java面试通关手册"(坚持原创,分享各种Java学习资源,面试题,优质文章,以及企业级Java实战项目回复关键字免费领取)回复关键字:"电商项 ...
- oracle imp dmp命令
vi par.txt userid=system/oracle tables=(user.table,...) query="where org_no like 32%" file ...
- ThinkPHP的运行流程-1
我在index\Lib\Action\目录下新建了一个ShowAction.class.php文件.ps:该目录是控制器的目录. 然后这个文件中继承了action这个类.代码如下: 1 2 3 4 5 ...
- 设计模式之笔记--解释器模式(Interpreter)
解释器模式(Interpreter) 定义 解释器模式(Interpreter),给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子. 类图 描述 Expr ...
- 获取AD用户名
var wshNetwork = new ActiveXObject("WScript.Network"); alert("域名 = "+ wshNetwork ...
- python 随机字符串
pip3 install pillow 读取硬盘中的文件,在页面显示 f = open('static/imgs/yj.png','rb') data = f.read() f.close() ret ...
- go的匿名组合
golang也提供了继承机制,但采用组合的文法,因此称为匿名组合.与其他语言不同, golang很清晰地展示出类的内存布局是怎样的. 一 非指针方式的组合 1)基本语法 type base stru ...
- python中__dict__与dir()的区别
在python中__dict__与dir()都可以返回一个对象的属性,区别在于: __dict__是对象的一个属性,而dir()是一个built-in的方法: __dict__返回一个对象的属性名和值 ...