http://tyvj.cn/Problem_Show.aspx?id=1359

一开始是一眼看出是二分的,因为这里有单调性,因为取钱是一次取完并且是连续的。

所以最优取法就是准备达到某个价值再取。最优里边包含了次优,也就是取不到m次我就能取完就一定能够取m次能够取完,只要在取法那里随便取就行了,保证不超过这个某个价值

于是我们可以二分这个价值,看看能不能最优法取完并且次数小于m。

#include <cstdio>
#include <cstring>
#include <cmath>
#include <string>
#include <iostream>
#include <algorithm>
using namespace std;
#define rep(i, n) for(int i=0; i<(n); ++i)
#define for1(i,a,n) for(int i=(a);i<=(n);++i)
#define for2(i,a,n) for(int i=(a);i<(n);++i)
#define for3(i,a,n) for(int i=(a);i>=(n);--i)
#define for4(i,a,n) for(int i=(a);i>(n);--i)
#define CC(i,a) memset(i,a,sizeof(i))
#define read(a) a=getint()
#define print(a) printf("%d", a)
#define dbg(x) cout << #x << " = " << x << endl
#define printarr(a, n, m) rep(aaa, n) { rep(bbb, m) cout << a[aaa][bbb]; cout << endl; }
inline const int getint() { int r=0, k=1; char c=getchar(); for(; c<'0'||c>'9'; c=getchar()) if(c=='-') k=-1; for(; c>='0'&&c<='9'; c=getchar()) r=r*10+c-'0'; return k*r; }
inline const int max(const int &a, const int &b) { return a>b?a:b; }
inline const int min(const int &a, const int &b) { return a<b?a:b; }const int N=100005;
int n, m, a[N];inline const bool check(const int &x) {int sum=0, t=0, i;for(i=1; i<=n; ++i) {sum+=a[i];if(sum>x) sum=a[i], ++t;if(t>=m) return 0; //这里要注意,因为此时一定还有没取完的,所以==m的时候就要退出了}return 1;
}int main() {read(n); read(m);int mx=0, sum=0;for1(i, 1, n) { read(a[i]); mx=max(mx, a[i]); sum+=a[i]; }int l=mx, r=sum, mid;while(l<=r) {mid=(l+r)>>1;if(check(mid)) r=mid-1;else l=mid+1;}print(r+1);return 0;
}

因为范围很大,所以我们二分的范围要适当做点技巧。


描述 Description

高考结束后,同学们大都找到了一份临时工作,渴望挣得一些零用钱。从今天起,Matrix67将连续工作N天(1<=N& lt;=100 000)。每一天末他可以领取当天及前面若干天里没有领取的工资,但他总共只有M(1<=M<=N)次领取工资的机会。 Matrix67已经知道了在接下来的这N天里每一天他可以赚多少钱。为了避免自己滥用零花钱,他希望知道如何安排领取工资的时间才能使得领到工资最多的 那一次工资数额最小。注意Matrix67必须恰好领工资M次,且需要将所有的工资全部领走(即最后一天末需要领一次工资)。

输入格式 InputFormat

第一行输入两个用空格隔开的正整数N和M
    以下N行每行一个不超过10000正整数,依次表示每一天的薪水。

输出格式 OutputFormat

输出领取到的工资的最大值最小是多少。

样例输入 SampleInput [复制数据]

7 5100400300100500101400

样例输出 SampleOutput [复制数据]

500

数据范围和注释 Hint

【样例说明】
    采取下面的方案可以使每次领到的工资不会多于500。这个答案不能再少了。
100 400   300 100   500   101   400   每一天的薪水
<------1 <-------2 <---3 <---4 <---5  领取工资的时间
  500       400     500   101   400   领取到的工资

【TYVJ】1359 - 收入计划(二分)相关推荐

  1. COGS 827. [Tyvj Feb11] 网站计划

    输入文件:web.in   输出文件:web.out   简单对比 时间限制:1 s   内存限制:128 MB 描述 Description     Tyvj的Admin--zhq同学将在寒假开始实 ...

  2. luogu P2680 运输计划 (二分答案+树上差分)

    题目背景 公元 20442044 年,人类进入了宇宙纪元. 题目描述 公元20442044 年,人类进入了宇宙纪元. L 国有 nn 个星球,还有 n-1n−1 条双向航道,每条航道建立在两个星球之间 ...

  3. Tyvj 1599 锻炼计划

    题目: 锻炼计划 来源: Tyvj 1599 题目大意: 给定M个计划和初始体力N,每项计划中会损耗体力,每秒会增加1体力,求是否会  累死,输出何时累死,若没事则输出最后的体力.一天1440分钟 数 ...

  4. 王健林的新“小目标”:2018年计划收入2479亿元

    价值君注:1月21日消息,万达董事长王健林日前对外发布2017年年度工作总结,称全面完成工作目标,2018年万达集团计划收入2479亿元,加快万达广场发展速度,持续不断企业转型,并加快线上线下融合发展 ...

  5. cogs2109 [NOIP2015] 运输计划

    cogs2109 [NOIP2015] 运输计划 二分答案+树上差分. STO链剖巨佬们我不会(太虚伪了吧 首先二分一个答案,下界为0,上界为max{路径长度}. 然后判断一个答案是否可行,这里用到树 ...

  6. 自动化面试问题及答案_普遍的基本收入是自动化的答案

    自动化面试问题及答案 It would be strange for people to hear that Milton Friedman, one of the greatest and well ...

  7. 闲人闲谈PS之三十一——新收入准则中的合同损失计提

    惯例闲话:新收入准则出来已经3年多,闲人也走访了很多工程企业的应用情况,推广情况不太乐观,多数企业还是沿用以前的方式记账,甚至还有不用工程施工科目,用生产制造科目体系,多见于装备制造行业,实际上如果是 ...

  8. 岭南师范学院专插本计算机,2020年岭南师范学院专插本招生计划出来了,共招250人...

    2020年岭南师范学院专插本招生计划是多少?岭南师范学院教务处公布了2020年该院校专插本拟招生计划,10个专业共250人.以下是易学仕小编为大家整理的相关内容,供2020年广东专插本考生查看. 20 ...

  9. 游戏收入模型_什么是收入模型

    游戏收入模型 什么是收入模型? (What is a Revenue Model?) A Revenue Model is the method or a business strategy whic ...

最新文章

  1. session对象不创建会有吗_相亲对象木讷无聊,想找个不无趣的男人这么难吗?...
  2. MongoDB-JAVA-Driver 3.2版本常用代码全整理(4) - 地理空间索引
  3. 需求分析的20条法则
  4. 清华大学 计算机 林伟,研究人员
  5. Win32ASM学习[8]: 进制转换的库函数
  6. LeetCode 457. 环形数组循环(暴力+快慢指针)
  7. 探秘蚂蚁金服分布式事务 Seata 的AT、Saga和TCC模式
  8. 分布式锁实现原理与最佳实践
  9. 每个人都该知道的数字
  10. mysql〉_MySql 基础知识-常用命令及sql语句
  11. 团队成员的分应该怎么分?
  12. 自如蛋壳被指推高房租背后:爱公寓资金链断裂先例需警醒
  13. 如何在 NVIDIA GPU、CUDA 和 cuDNN 中使用 OpenCV 的“dnn”模块
  14. 芯烨Xprinter XP-F260H 打印机驱动
  15. 怎么推广“外卖CPS项目”赚佣金?(饿了么美团外卖红包小程序搭建教程)
  16. zabbix使用详解
  17. 迪赛智慧数——其他图表(平行坐标图):2001 VS 2020主要城市房价及涨幅
  18. 高中英语话题阅读 计算机,高中英语必修二Unit 3 Computers阅读课的教学设计
  19. java打印pdf_java操作打印机打印pdf文件
  20. CPU检测工具:CPU-Z快捷键大全(绿色)

热门文章

  1. 高性能MySQL(第3版)
  2. python 中文字符串截取,Python实现针对含中文字符串的截取功能示例
  3. 多布局怎么搭建_小展位大吸引力,如何设计搭建出精致的展台?
  4. Linux系统的进程管理
  5. python聚类分析如何确定分类个数_Python数据挖掘—聚类—KMeans划分法
  6. windows一键安装web环境全攻略(win2008)
  7. LLVM笔记(5) - SMS
  8. openstack——horizon篇
  9. tensorflow基础-placeholder
  10. sublime Text3常用快捷键