题目名称 2398. [HNOI 2013]切糕
输入输出 nutcake.in/out
难度等级 ★★★☆
时间限制 5000 ms (5 s)
内存限制 512 MiB
测试数据 20
题目来源 GravatarTenderRun 于2016-07-22加入
开放分组 全部用户
提交状态
分类标签
网络流
分享题解
通过:79, 提交:170, 通过率:46.47%
Gravatarjhs 100 0.208 s 4.38 MiB C++
GravatarHzoi_QTY 100 0.236 s 11.10 MiB C++
GravatarHzoi_Mafia 100 0.252 s 5.11 MiB C++
GravatarHzoi_Hugh 100 0.262 s 89.52 MiB C++
Gravatarppp 100 0.278 s 24.22 MiB C++
GravatarHzoi_Hugh 100 0.296 s 94.23 MiB C++
GravatarHzoi_moyi 100 0.298 s 4.30 MiB C++
GravatarHzoi_Hugh 100 0.298 s 75.38 MiB C++
GravatarAnonymity 100 0.304 s 3.48 MiB C++
GravatarAAAAAAAAAA 100 0.317 s 6.90 MiB C++
关于 切糕 的近10条评论(全部评论)
加了弧优化竟然快了这么多
GravatarShirry
2018-04-11 23:15 8楼
Gravataryymxw
2017-07-31 21:02 7楼
妈的传引用有毒,一下卡掉20多秒……
GravatarHZOI_蒟蒻一只
2017-07-31 11:13 6楼
好一道最小割~
GravatarHzoi_Maple
2017-07-31 09:12 5楼
原来cogs也有。抓紧水一波
GravatarRapiz
2017-03-09 16:55 4楼
大年三十1A我也是感动。
Gravatar_Itachi
2017-02-20 18:03 3楼
回复 @風掠過的瞬間一轉眼就不見 :
追随着神犇的脚步,我想到了怎么构图
GravatarFoolMike
2017-01-27 21:15 2楼
其实还不算难
GravatarTenderRun
2016-07-22 15:43 1楼

2398. [HNOI 2013]切糕

★★★☆   输入文件:nutcake.in   输出文件:nutcake.out   简单对比
时间限制:5 s   内存限制:512 MiB

[HNOI 2013]切糕

第三题:切糕(程序文件名:cake.exe)100 分,运行时限:5s



经过千辛万苦小A 得到了一块切糕,切糕的形状是长方体,小A 打算拦腰将切糕切成两半分给小B。出于美观考虑,小A 希望切面能尽量光滑且和谐。于是她找到你,希望你能帮她找出最好的切割方案。



出于简便考虑,我们将切糕视作一个长P、宽Q、高R 的长方体点阵。我们将位于第z层中第x 行、第y 列上(1≤x≤P, 1≤y≤Q, 1≤z≤R)的点称为(x,y,z),它有一个非负的不和谐值v(x,y,z)。一个合法的切面满足以下两个条件:



1. 与每个纵轴(一共有P*Q 个纵轴)有且仅有一个交点。即切面是一个函数f(x,y),对于所有1≤x≤P, 1≤y≤Q,我们需指定一个切割点f(x,y),且1≤f(x,y)≤R。



2. 切面需要满足一定的光滑性要求,即相邻纵轴上的切割点不能相距太远。对于所有的1≤x,x’≤P 和1≤y,y’ ≤Q,若|x-x’|+|y-y’|=1,则|f(x,y)-f(x’,y’)| ≤D,其中D 是给定的一个非负整数。



可能有许多切面f 满足上面的条件,小A 希望找出总的切割点上的不和谐值最小的那个,即v(x, y, f (x, y))x,y 最小。



【输入格式】(input.txt)



从文件input.txt中读入数据,输入文件第一行是三个正整数P,Q,R,表示切糕的长P、宽Q、高R。第二行有一个非负整数D,表示光滑性要求。接下来是R个P行Q列的矩阵,第z个矩阵的第x行第y列是v(x,y,z) (1≤x≤P,1≤y≤Q, 1≤z≤R)。



100%的数据满足P,Q,R≤40,0≤D≤R,且给出的所有的不和谐值不超过1000。



【输出格式】(output.txt)



输出文件output.txt 仅包含一个整数,表示在合法基础上最小的总不和谐值。



【输入输出样例】



input.txt       output.txt



2 2 2            6



1



6 1



6 1



2 6



2 6



input.txt   output.txt



2 2 2        12



0



5 1



5 1



2 5



2 5



【样例解释】



第一组样例中最佳切面的f为f(1,1)=f(2,1)=2,f(1,2)=f(2,2)=1。



第二组样例中最佳切面的f为f(1,1)=f(2,1)=f(1,2)=f(2,2)=1。