摘枇杷

时间限制: 2000 ms  |  内存限制: 65535 KB
难度: 3
描述

理工学院的枇杷快熟了,ok,大家都懂得。而且大家都知道,学校的枇杷树都是一列一列的。现在小Y同学已经在筹划怎么摘枇杷了。现在我们假设有一列枇杷树,而且每棵枇杷树上枇杷果的数量小Y都已经知道了。

假设现在有n棵枇杷树,小Y可以把这n棵枇杷树分成m组,每组枇杷果的数量是这组内每棵枇杷树上枇杷果数量的和。注意,每组的枇杷树必须是连续的。(每组最少1棵树,最多n棵树)。小Y把枇杷往寝室拿的时候是一组一组拿的,所花费的力气等于这m组中枇杷果最多的那组枇杷果的数量。现在小Y想花尽量少的力气把这些枇杷果拿回寝室。

输入
多组测试数据,以EOF结束(<= 100组)
每组测试数据第一行有两个数n(n <= 1000)和m(1 <=m <= n)
第二行有n个数,分别代表每颗树上枇杷果的数量
输出
输出小Y同学所花费的最小的力气,每个结果占一行。
样例输入
3 2
1 2 3
7 5
1 4 3 1 5 2 4
样例输出
3
5

解题思路:这题第一感觉是dp,dp[i][j]表示前i个果子分成j组的最小力气,然后TLE一发,然后想了好久的数据结构去优化它但是想不出来,然后看到讨论区的提示,瞬间顿悟,这题完全可以二分答案+贪心策略,因为只需要找到最大的分组即可,完全没必要用dp。

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;const int maxn = 1005;
int n,m;
int num[maxn];bool check(int limit)
{int i = 1,sum = 0,cnt = 1;while(i <= n && cnt <= m){if(sum + num[i] > limit){sum = 0;cnt++;continue;}sum += num[i];i++;}return i > n && cnt <= m;
}int main()
{int l,r,mid;while(scanf("%d %d",&n,&m)!=EOF){l = r = 0;for(int i = 1; i <= n; i++){scanf("%d",&num[i]);r += num[i];}int ans;while(l <= r){mid = (l + r) >> 1;if(check(mid)){ans = mid;r = mid - 1;}else l = mid + 1;}printf("%d\n",ans);}return 0;
}

nyoj 680 摘枇杷(二分+贪心)相关推荐

  1. nyoj 586 疯牛(二分+贪心)

    疯牛 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 农夫 John 建造了一座很长的畜栏,它包括N (2 <= N <= 100,000)个隔间,这些小隔间 ...

  2. 贪心算法之——摘枇杷(nyoj680)(贪心+二分搜索)

    问题: 摘枇杷 时间限制: 2000 ms  |  内存限制: 65535 KB 难度: 3 描述 理工学院的枇杷快熟了,ok,大家都懂得.而且大家都知道,学校的枇杷树都是一列一列的.现在小Y同学已经 ...

  3. 蒟蒻的第一篇博客CF1041C Coffee Break(二分+贪心+set)

    CF1041C Coffee Break(二分+贪心+set) 描述 Recently Monocarp got a job. His working day lasts exactly mm min ...

  4. 洛谷P1182 数列分段 Section II(二分+贪心)

    题目描述 对于给定的一个长度为N的正整数数列 A1∼NA _{1∼N}A1∼N​,现要将其分成 M(M≤N)M(M≤N)M(M≤N)段,并要求每段连续,且每段和的最大值最小. 关于最大值最小: 例如一 ...

  5. 摘枇杷(最大值最小化)

    理工学院的枇杷快熟了,ok,大家都懂得.而且大家都知道,学校的枇杷树都是一列一列的.现在小Y同学已经在筹划怎么摘枇杷了.现在我们假设有一列枇杷树,而且每棵枇杷树上枇杷果的数量小Y都已经知道了. 假设现 ...

  6. POJ 2456 疯牛(二分+贪心)

    疯牛 时间限制: 1000 ms  |  内存限制: 65535 KB 难度: 4 描述 农夫 John 建造了一座很长的畜栏,它包括N (2 <= N <= 100,000)个隔间,这些 ...

  7. [USACO16JAN]Angry Cows S[二分+贪心]

    题意:Bessie 设计了一款新游戏:Angry Cows.在这个游戏中,玩家发射奶牛,每头奶牛落地时引爆一定范围内的干草.游戏的目标是使用一组奶牛引爆所有干草. N 捆干草排列在数轴上的不同位置.第 ...

  8. BZOJ2525 [Poi2011]Dynamite 【二分 + 贪心】

    题目链接 BZOJ2525 题解 就是要求所有有炸弹的点到点燃点距离最大值最小 显然二分答案距离\(D\) 然后按深度排序,贪心点燃当前没覆盖的深度最深的点往上第\(D\)层的点 每覆盖一个点要标记其 ...

  9. hdu5248序列变换(二分+贪心)基础题

    题意(中文的直接粘题意吧)                                                                                        ...

最新文章

  1. Android 接入支付宝支付实现
  2. 解决oracle连接很慢问题
  3. [C]Ubuntu 13.04实现NVIDIA双显卡切换
  4. get metadata in QHD - still has cache logic
  5. 为什么软件测试需要变革?
  6. 《程序员修炼之道——从小工到专家》(典藏书)
  7. 树莓派 红灯不亮_关闭树莓派的电源指示灯和状态指示灯
  8. mongoVue破解版
  9. 开发工具之 Snipaste(超级截图工具)
  10. 计算机管理员永久访问权限,三种方法让你获得Win7管理员最高权限
  11. 力叩经典题--俩数之和
  12. Mac Mini - 一个深坑
  13. 重学JavaWeb —— Servlet,简单全面一发入魂
  14. booktest-17 自定义过滤器 模板标签没有除法和取余函数
  15. 双向链表(Doubly Linked List)
  16. 遇到Process finished with exit code -1073740791 (0xC0000409)实在不能解决的时候要注意
  17. AO3400-ASEMI高效mos管AO3400
  18. 构造方法--无参构造方法
  19. vue-monoplasty-slide-verify自定义拼图出现位置
  20. 什么是gpt一4-如何用上gpt-4

热门文章

  1. 2022 音视频技术风向标
  2. Scrapy之FilesPipeline和ImagesPipline文件与图片下载
  3. AE CC 装不上,安装程序检测到计算机重新启动的过程可能暂停。建议退出安装程序,重新启动计算机,然后再重试。...
  4. Nvidia GTC China 19 keynote
  5. 苹果Vision Pro物料成本曝光,3499美金售价原来是这样来的
  6. 谷歌或在第四季度推99美元Nexus平板电脑
  7. 中鑫优配股票配资网站:11月10日周三早间市场信息
  8. GPRS核心网信息元素—MSISDN
  9. java版状态机Squirrel源码分析
  10. 造成imail邮箱能接收不能发送的原因和解决办法