题意

见luogu

Sol

贪心+枚举

如果知道最后一次是消除一行

那么一定消了\(n\)行

此时只要消的列最小就好了

枚举每列从上往下消到哪里,那么下面消的越小越好

那么就有了贪心策略:

先消左右的列,再消上面,再消下面

最后一次消列的情况是一样的

# include <bits/stdc++.h>
# define RG register
# define IL inline
# define Fill(a, b) memset(a, b, sizeof(a))
using namespace std;
typedef long long ll;
const int _(2005); IL int Input(){
RG int x = 0, z = 1; RG char c = getchar();
for(; c < '0' || c > '9'; c = getchar()) z = c == '-' ? -1 : 1;
for(; c >= '0' && c <= '9'; c = getchar()) x = (x << 1) + (x << 3) + (c ^ 48);
return x * z;
} int k, m, n, s1[_][_], s2[_][_], ans = 2e9; IL int Calc1(RG int x){
RG int l1 = 1, r1 = n, l2 = 1, r2 = m, ret = 0;
while(l1 <= r1 && l2 <= r2){
++ret;
if(s2[r1][l2] - s2[l1 - 1][l2] <= k) ++l2;
else if(s2[r1][r2] - s2[l1 - 1][r2] <= k) --r2;
else if(s1[l1][r2] - s1[l1][l2 - 1] <= k && l1 < x) ++l1;
else if(s1[r1][r2] - s1[r1][l2 - 1] <= k) --r1;
else return 2e9;
}
return ret;
} IL int Calc2(RG int x){
RG int l1 = 1, r1 = n, l2 = 1, r2 = m, ret = 0;
while(l1 <= r1 && l2 <= r2){
++ret;
if(s1[l1][r2] - s1[l1][l2 - 1] <= k) ++l1;
else if(s1[r1][r2] - s1[r1][l2 - 1] <= k) --r1;
else if(s2[r1][l2] - s2[l1 - 1][l2] <= k && l2 < x) ++l2;
else if(s2[r1][r2] - s2[l1 - 1][r2] <= k) --r2;
else return 2e9;
}
return ret;
} int main(RG int argc, RG char* argv[]){
k = Input(), m = Input(), n = Input();
for(RG int i = 1; i <= n; ++i)
for(RG int j = 1; j <= m; ++j)
s1[i][j] = s2[i][j] = Input();
for(RG int i = 1; i <= n; ++i)
for(RG int j = 2; j <= m; ++j)
s1[i][j] += s1[i][j - 1];
for(RG int j = 1; j <= m; ++j)
for(RG int i = 2; i <= n; ++i)
s2[i][j] += s2[i - 1][j];
for(RG int i = 1; i <= n + 1; ++i) ans = min(ans, Calc1(i));
for(RG int i = 1; i <= m + 1; ++i) ans = min(ans, Calc2(i));
printf("%d\n", ans);
return 0;
}

Luogu3444:[POI2006]ORK-Ploughing的更多相关文章

  1. java web 开发三剑客 -------电子书

    Internet,人们通常称为因特网,是当今世界上覆盖面最大和应用最广泛的网络.根据英语构词法,Internet是Inter + net,Inter-作为前缀在英语中表示“在一起,交互”,由此可知In ...

  2. 所有selenium相关的库

    通过爬虫 获取 官方文档库 如果想获取 相应的库 修改对应配置即可 代码如下 from urllib.parse import urljoin import requests from lxml im ...

  3. [洛谷P3444] [POI2006]ORK-Ploughing

    洛谷题目链接[POI2006]ORK-Ploughing 题目描述 Byteasar, the farmer, wants to plough his rectangular field. He ca ...

  4. [POI2006]ORK-Ploughing(贪心,枚举)

    [POI2006]ORK-Ploughing 题目描述 Byteasar, the farmer, wants to plough his rectangular field. He can begi ...

  5. 【Luogu3444】ORK-Ploughing(贪心)

    [Luogu3444]ORK-Ploughing(贪心) 题面 Luogu 题解 我们知道,如果我们选定了以横向为主,或者纵向为主, 那么就有尽可能减少另一个方向上耕地的次数 所以分开贪心,但是本质相 ...

  6. Scalaz(14)- Monad:函数组合-Kleisli to Reader

    Monad Reader就是一种函数的组合.在scalaz里函数(function)本身就是Monad,自然也就是Functor和applicative.我们可以用Monadic方法进行函数组合: i ...

  7. BZOJ1510: [POI2006]Kra-The Disks

    1510: [POI2006]Kra-The Disks Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 265  Solved: 157[Submit][ ...

  8. BZOJ1524: [POI2006]Pal

    1524: [POI2006]Pal Time Limit: 5 Sec  Memory Limit: 357 MBSubmit: 308  Solved: 101[Submit][Status] D ...

  9. BZOJ1511: [POI2006]OKR-Periods of Words

    1511: [POI2006]OKR-Periods of Words Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 174  Solved: 92[Su ...

随机推荐

  1. spark集成hbase与hive数据转换与代码练习

    帮一个朋友写个样例,顺便练手啦~一直在做平台的各种事,但是代码后续还要精进啊... import java.util.Date import org.apache.hadoop.hbase.HBase ...

  2. java 堆和栈

    转载自 http://blog.csdn.net/peterwin1987/article/details/7571808 博主讲的相当清楚吼吼吼

  3. ECharts 高度宽度自适应(转载)

    最近在写一个地图类的应用,用的是echarts的图表,然而一上来就一脸懵逼,如果父级容器的height/width属性设置为百分比的形式,那么echarts就会warning,且不能正常的生成图表.所 ...

  4. HopSpot虚拟机中的Mark word的作用

    1.其为对象头保存对象的hashcode 2.保存GC分代年龄,锁状态标志,线程持有的锁,偏向线程的ID偏向时间戳.

  5. Linux上查看用户名和组并把特定用户放到特定的组之下

    cat /etc/passwd             //查看所有的用户信息 cat /etc/passwd|grep 用户名       //查看某一个用户的信息 cat /etc/group   ...

  6. 记录一个 spring cloud 配置中心的坑,命令行端口参数无效,被覆盖,编码集问题无法读取文件等.

    spring cloud 配置中心 结合GIT , 可以运行时更新配置文件.发送指令让应用重新读取配置文件. 最近在测试服务器实现了一套,结果CPU 实用率暴增,使用docker compose启动 ...

  7. SpringBoot实战 之 异常处理篇

    在互联网时代,我们所开发的应用大多是直面用户的,程序中的任何一点小疏忽都可能导致用户的流失,而程序出现异常往往又是不可避免的,那该如何减少程序异常对用户体验的影响呢?其实方法很简单,对异常进行捕获,然 ...

  8. HttpClient调用RestFul接口(post和get方式)

    /** * @version V1.0 * @Description 调用http接口工具类 * @Author pc * @Date 2018/3/2 11:03 */public class Ht ...

  9. jsencrypt参数前端加密c#解密

    写程序时一般是通过form表单或者ajax方式将参数提交到服务器进行验证,如何防止提交的请求不被抓包后串改,虽然无法说绝对安全却给非法提交提高了难度,本篇采用jsencypt在前端进行加密的并且用C# ...

  10. 多线程实现之Java

    关于Java线程的生命周期,请看下面这张图: 新建状态(New):当线程对象创建后,即进入了新建状态,如:Thread t = new MyThread(); 就绪状态(Runnable):当调用线程 ...