题意

见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. FastStone Capture的使用

    FastStone Capture的使用 FastStone Capture是一款精简而优秀的图像处理软件,在工作中会经常用到.我在本地安装了FastStone Capture 8.4版本 (提取码: ...

  2. word在页眉中插入页码

    编辑页眉时,插入-页码-当前位置-普通数字

  3. 使用Python管理数据库

    使用Python管理数据库   这篇文章的主题是如何使用Python语言管理数据库,简化日常运维中频繁的.重复度高的任务,为DBA们腾出更多时间来完成更重要的工作.文章本身只提供一种思路,写的不是很全 ...

  4. 用yii2给app写接口(上)

    Yii2如何实现RESTful风格的API 1.建立单独的应用程序 为了增加程序的可维护性,易操作性,我们选择新建一套应用程序,这也是为了和前台应用.后台应用区分开操作.有些人要嚷嚷了,为啥非得单独搞 ...

  5. 硬件能力与智能AI-Zoomla!逐浪CMS2 x3.9.2正式发布

    北京时间2017年9月10日,领先的CMS网站内容管理系统与生产力软件研发厂商-Zoomla!逐浪CMS团队发布其年度重要产品:Zoomla!逐浪CMS2 x3.9.2,引领国内门户.移动.微商以及生 ...

  6. the c programing language 学习过程8

    glean 捡拾落穗; glean insight 深入了解 modeled模型化 peripheral外围的 himogeneous匀称的 intents 意图  excerpt摘录 intende ...

  7. hive: insert数据时Error during job, obtaining debugging information 以及beyond physical memory limits

    insert overwrite table canal_amt1...... 2014-10-09 10:40:27,368 Stage-1 map = 100%, reduce = 32%, Cu ...

  8. 经典案例之MouseJack

    引言:在昨天的文章<无线键鼠监听与劫持>中,我们提到今天会向您介绍一个无线键鼠的监听与劫持的经典案例,<MouseJack>:MouseJack能利用无线鼠标和键盘存在的一些问 ...

  9. 如何利用Plxmon工具进行在线烧录PCI卡的EEPROM

    PLXMON是PLX公司提供的用于在线烧录PCI卡的EEPROM的工具. 烧录EEPROM有两种方式,一是比较传统的方法,即采用烧录机进行烧录.采用这种方式时,在调试过程中EEPROM需采用插件式封装 ...

  10. linux内核移植X86平台的例子

    bootloader支持启动多个Linux 内核安装(X86平台) 1. cparch/x86/boot/bzImage /boot/vmlinuz-$version 2. cp $initrd /b ...