描述

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

输入格式

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

输出格式

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

测试样例1

输入

7 5 
100 
400 
300 
100 
500 
101 
400

输出

500

备注

【样例说明】
    采取下面的方案可以使每次领到的工资不会多于500。这个答案不能再少了。
100 400   300 100   500   101   400   每一天的薪水
<------1 <-------2 <---3 <---4 <---5  领取工资的时间
  500       400     500   101   400   领取到的工资
 
 
二分,检验答案
 
//sineMora 2016.7.9
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
using namespace std;
const int maxn = ;
int n,m,sum[maxn];
void input(){
cin>>n>>m;
int t;
sum[] = ;
for(int i = ;i <= n;i++){
scanf("%d",&t);
sum[i] = sum[i-] + t;
}
}
bool check(int t){
int left = m-,add = ;
for(int i = ;i <= n;i++){
if(sum[i] - sum[i-] > t){
return false;
}
if(add + sum[i] - sum[i-] > t){
left--;
add = sum[i] - sum[i-];
}else{
add += sum[i] - sum[i-];
}
if(left < ) return false;
}
return true;
}
void div(){
int lans = ,rans = sum[n],mans;
while(lans <= rans){
mans = (lans + rans) >> ;
if(check(mans)){
rans = mans - ; }else{
lans = mans + ;
}
}
if(check(mans)) cout<<mans;
else cout<<mans + ;
}
int main(){
input();
div();
return ;
}
#include<iostream>
#include<cstdio>
using namespace std;
int n,m,a[],sum,mx,ans;
bool jud(int x)
{
int t=,tot=;
for(int i=;i<=n;i++)
{
tot+=a[i];
if(tot>x){t++;tot=a[i];}
if(t+>m)return ;
}
return ;
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)
{
scanf("%d",&a[i]);
mx=max(mx,a[i]);
sum+=a[i];
}
int l=mx,r=sum;
while(l<=r)
{
int mid=(l+r)>>;
if(jud(mid)){ans=mid;r=mid-;}
else l=mid+;
}
printf("%d",ans);
return ;
}

TYVJ1359 收入计划的更多相关文章

  1. 【TYVJ】1359 - 收入计划(二分)

    http://tyvj.cn/Problem_Show.aspx?id=1359 一开始是一眼看出是二分的,因为这里有单调性,因为取钱是一次取完并且是连续的. 所以最优取法就是准备达到某个价值再取.最 ...

  2. 【noip模拟赛6】收入计划 最大值的最小值 二分答案

    描述 高考结束后,同学们大都找到了一份临时工作,渴望挣得一些零用钱.从今天起,Matrix67将连续工作N天(1<=N<=100 000).每一天末他可以领取当天及前面若干天里没有领取的工 ...

  3. 【t035】收入计划

    Time Limit: 1 second Memory Limit: 32 MB [问题描述] 高考结束后,同学们大都找到了一份临时工作,渴望挣得一些零用钱.从今天起,Matrix67将连续工作N天( ...

  4. k序列和

    二分答案是参数搜索的一个改善.是这样,对于一个问题,如果它的答案具有单调性质(即如果i不可行,那么大于i的解都不可行,而小于i的解有可能可行),进而用二分的方法枚举答案,再判断答案是否可行,直到求到符 ...

  5. MM/PP/SD/FICO 模块常用事物码(T-code)、SAP快捷键

    MM/PP/SD/FICO MM常用T-CODE MM01 创建一般物料 Create Material – GeneralMM02 修改一般物料 Change MaterialMM03 显示一般物料 ...

  6. 第14章 Salesforce标准对象

    14.1 Sales Cloud基本信息 Sales Cloud 会为您提供管理业务的一切功能.生成最佳潜在客户.通过销售漏斗管理业务机会,并使用现有客户培养关系.以及,预测收入.设置销售区域,并将代 ...

  7. DB-MD:MD/主数据

    ylbtech-DB-MD:MD/主数据 主数据(MD Master Data)指系统间共享数据(例如,客户.供应商.账户和组织部门相关数据).与记录业务活动,波动较大的交易数据相比,主数据(也称基准 ...

  8. [网络流24题] 太空飞行计划(cogs 727)

    [问题描述] W 教授正在为国家航天中心计划一系列的太空飞行.每次太空飞行可进行一系列商业性实验而获取利润.现已确定了一个可供选择的实验集合E={E1,E2,-,Em},和进行这些实验需要使用的全部仪 ...

  9. Line计划今年全面进军中国市场:建立本地团队

    北京时间6月13日下午消息,<华尔街日报>报道称,移动消息应用Line计划于今年晚些时候进军中国市场.Line将在中国建立本地团队,开发内容和功能,从而进一步开拓中国这一全球最大的移动市场 ...

随机推荐

  1. QT cannot open output file debug\OpencvTest.exe: Permission denied

    问题:调试运行QT的时候遇到这个问题,发现时是由于没有正常关闭程序所致,导致后台有之前运行的程序在跑(电脑环境win7 64 Qt5.2.1 opencv2.4.6). 目前解决办法:手动关闭已在运行 ...

  2. C#中无边框窗体移动

    拖动无边框窗体Form至桌面任何位置 首先建一个Windows应用程序将Form1的 FormBorderStyle属性设置为Noe Point mouseOff;//鼠标移动位置变量 bool le ...

  3. PRML读书会第二章 Probability Distributions(贝塔-二项式、狄利克雷-多项式共轭、高斯分布、指数族等)

    主讲人 网络上的尼采 (新浪微博: @Nietzsche_复杂网络机器学习) 网络上的尼采(813394698) 9:11:56 开始吧,先不要发言了,先讲PRML第二章Probability Dis ...

  4. linux上svn版本库创建小记

    [新建svn仓库] 先创建一个文件夹mkdir /opt/svn/wechat;   然后创建svn版本库    svnadmin create /opt/svn/wechat;   [创建用户组权限 ...

  5. Qt程序启动画面播放(gif与swf两种动画格式)

    学习Qt有一段时间了,发现一个小问题,网上关于Qt的资料或者总结性的学习及应用文章有点少. 比如,Qt完整的API,程序运行之前的启动画面如何按理想效果播放等,每次想在项目中添加一些应用的时候,总是找 ...

  6. 在线富文本编辑器FckEditor配置(.Net Framework 3.5)

    进入FCKeditor文件夹,编辑 fckconfig.js 文件.1.上传设置  .  var _FileBrowserLanguage         = 'php' ;         // a ...

  7. 《TCP/IP详解卷1:协议》第5章 RARP:逆地址解析协议-读书笔记

    章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP ...

  8. [设计模式] javascript 之 工厂方法模式

    1. 简单工厂模式 说明:就是创建一个工厂类,里面实现了所对同一个接口的实现类的创建. 但是好像JavaScript 好像没有 接口 这号东西,所以我们去掉接口这个层; 当然,我们这里的 实现类 下的 ...

  9. DOM(四)事件流

    1.冒泡型事件 浏览器的事件模型分两种:捕获型事件和冒泡型事件.由于ie不支持捕获型事件,所以以下主要以冒泡型事件作为讲解.(dubbed bubbling)冒泡型指事件安装最特定的事件到最不特定的事 ...

  10. 【web必知必会】—— DOM:四个常用的方法

    终于开始复习DOM的知识了,这一阵忙乎论文,基本都没好好看技术的书. 记得去年实习的时候,才开始真正的接触前端,发现原来JS可以使用的如此灵活. 说起DOM就不得不提起javascript的组成了,j ...