3144:[HNOI2013]切糕 - BZOJ


var
map:array[..,-..]of longint;
dis,his,pre:array[..]of longint;
vh:array[..]of longint;
fx:array[-..]of longint;
a,b,c,d,flow:longint; procedure init;
var
i,j,k:longint;
begin
read(b,c,a,d);
for i:= to a do
for j:= to b do
for k:= to c do
begin
read(map[(i-)*b*c+(j-)*c+k,]);
if i>d then
begin
if k> then map[(i-)*b*c+(j-)*c+k,]:=;
if j> then map[(i-)*b*c+(j-)*c+k,]:=;
if k<c then map[(i-)*b*c+(j-)*c+k,]:=;
if j<b then map[(i-)*b*c+(j-)*c+k,]:=;
end;
end;
fx[]:=b*c;
fx[]:=-d*b*c-;
fx[]:=-d*b*c-c;
fx[]:=-d*b*c+;
fx[]:=-d*b*c+c;
for i:= to do
fx[-i]:=-fx[i];
end; function max(x,y:longint):longint;
begin
if x>y then exit(x);
exit(y);
end; procedure work;
var
i,j,aug,min:longint;
flag:boolean;
begin
vh[]:=a*b*c+;
i:=;
aug:=maxlongint;
while dis[]<=a*b*c+ do
begin
flag:=false;
his[i]:=aug;
if i= then
begin
for j:= to b*c do
if dis[]=dis[j]+ then
begin
flag:=true;
pre[j]:=-;
break;
end;
if flag then i:=j;
end
else
for j:=- to do
if i+fx[j]> then
if (map[i,j]>)and(dis[i]=dis[i+fx[j]]+) then
begin
flag:=true;
pre[i+fx[j]]:=-j;
if aug>map[i,j] then aug:=map[i,j];
inc(i,fx[j]);
if i>a*b*c then
begin
inc(flow,aug);
while i<> do
begin
inc(map[i,pre[i]],aug);
dec(map[max(i+fx[pre[i]],),-pre[i]],aug);
inc(i,fx[pre[i]]);
if i< then i:=;
end;
aug:=maxlongint;
end;
break;
end;
if flag then continue;
min:=a*b*c+;
if i= then
begin
for j:= to b*c do
if min>dis[j] then min:=dis[j];
end
else
for j:=- to do
if i+fx[j]> then
if (map[i,j]>)and(dis[i+fx[j]]<min) then min:=dis[i+fx[j]];
dec(vh[dis[i]]);
if vh[dis[i]]= then break;
dis[i]:=min+;
inc(vh[dis[i]]);
if i<> then
begin
inc(i,fx[pre[i]]);
if i< then i:=;
aug:=his[i];
end;
end;
write(flow);
end; begin
init;
work;
end.
3144:[HNOI2013]切糕 - BZOJ的更多相关文章
- BZOJ 3144: [Hnoi2013]切糕
3144: [Hnoi2013]切糕 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1495 Solved: 819[Submit][Status] ...
- bzoj 3144: [Hnoi2013]切糕 最小割
3144: [Hnoi2013]切糕 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 681 Solved: 375[Submit][Status] ...
- 【BZOJ 3144】 3144: [Hnoi2013]切糕 (最小割模型)
3144: [Hnoi2013]切糕 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1764 Solved: 965 Description Inp ...
- 3144: [Hnoi2013]切糕
3144: [Hnoi2013]切糕 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1526 Solved: 827[Submit][Status] ...
- [BZOJ 3144] [Hnoi2013] 切糕 【最小割】
题目链接:BZOJ - 3144 题目分析 题意:在 P * Q 的方格上填数字,可以填 [1, R] . 在 (x, y) 上填 z 会有 V[x][y][z] 的代价.限制:相邻两个格子填的数字的 ...
- BZOJ 3144 [HNOI2013]切糕 (最大流+巧妙的建图)
题面:洛谷传送门 BZOJ传送门 最大流神题 把点权转化为边权,切糕里每个点$(i,j,k)$向$(i,j,k+1)$连一条流量为$v(i,j,k)$的边 源点$S$向第$1$层的点连边,第$R+1$ ...
- 【BZOJ】3144: [Hnoi2013]切糕
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3144 MDZZ,不知道为什么被卡常数了/TAT(特判才过去的....论vector的危害性 ...
- 【刷题】BZOJ 3144 [Hnoi2013]切糕
Description Input 第一行是三个正整数P,Q,R,表示切糕的长P. 宽Q.高R.第二行有一个非负整数D,表示光滑性要求.接下来是R个P行Q列的矩阵,第z个 矩阵的第x行第y列是v(x, ...
- bzoj 3144 [Hnoi2013]切糕——最小割
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3144 一根纵轴上切一个点,可以把一根纵轴上的点连成一串来体现.自己的写法是每个点连向前一个点 ...
随机推荐
- Oracle学习笔记4 使用Navicat for Oracle 连接Oracle时出现错误:ORA-28547: connection to server failed, probable Oracle Net admin error
出问题到的机器环境: Oracle 11gR2 64bit Navicat for Oracle 11.0.10 根据网上一些大神的做法及个人的一些推测,总结如下: 问题出现的原因:Navicat与O ...
- ZOJ 3872 Beauty of Array (The 12th Zhejiang Provincial Collegiate Programming Contest )
对于没有题目积累和clever mind的我来说,想解这道题还是非常困难的,也根本没有想到用dp. from: http://blog.csdn.net/u013050857/article/deta ...
- js jquery jquery.wordexport.js 实现导出word
由于工作需要,将一个页面导出word文档,主要是简历!经过百度搜索之后,没找到结果,无奈之下只能求助Google,意外发现jquery一款插件可以实现这个功能!而且效果还算可以! 基本可以实现想要的功 ...
- jquery实现点击页面空白隐藏指定菜单
注意:dmenu是一个div的class名哦 代码如下 复制代码 $('html,body').click(function(e){ if(e.target.id.indexOf("dme ...
- 使用Struts2 验证框架,验证信息重复多次出现
版权声明:本文为博主原创文章,未经博主允许不得转载. 问题描述:第一次提交表单.某个数据不符合规则,就会出现一条错误信息.再次提交,上次显示的错误信息不消失,又多出一条一模一样的错误信息.提交几次,就 ...
- c#中sqlhelper类的编写(二)
上一篇文章讲了简易版的SqlHelper类的编写,我们在这里就上一篇文章末尾提出的问题写出解决方案. sql语句注入攻击已经是众所周知的了.我们如何在C#中保护自己的数据库不被这样的方式攻击呢? 不用 ...
- 分享9款很有创意的HTML5动画
1.HTML5 SVG Loading 动画加载特效 这是一款基于HTML5/CSS3和SVG的Loading加载动画特效,一共有4种不同的动画效果.每一组Loading动画都非常可爱,他们都非常欢快 ...
- equals()源代码及释义
源代码: public boolean equals(Object anObject) {if (this == anObject) { return true;}if (anObject insta ...
- iOS开发零基础教程之生成git所需的SSH keys
在我们github看到了一个不错的第三方库时,可能我们想把他git clone到本地,我们需要复制他的SSH URL,如下图: 复制完地址之后,我们需要打开终端,然后输入命令: git clone + ...
- iPhone Tableview分批显示数据
//非原创 iPhone Tableview分批显示数据是本文要介绍的内容,主要讲解的是数据的显示.iPhone屏幕尺寸是有限的,如果需要显示的数据很多,可以先数据放到一个table中,先显示10 ...