题目链接:http://47.93.252.151/problem.php?id=1148

题目描述

《我的妹妹哪有这么可爱!》中的女主叫做高坂桐乃,高坂家的幺女,外表出众、成绩优秀、运动万能的少女,而且还兼职流行杂志的专属模特。阳光的外表下却有着特别的兴趣,是个在意周围眼光的御宅族,喜欢妹系的成人游戏和动梅露露的动画。桐乃有很多的工作,这次她有接到一个模特工作,这次一共工作n天,每天的工资为vi 有m个结算工资的日子,因为桐乃还是初中生所以她可以任意挑选m天来拿工资,但是桐乃每次不想拿太多的钱,所以她想计划使她一次性拿的钱中的最大的最小,(最后一天一定要拿工资)但是她不会分配日子,按照惯例,她找来了哥哥京介进行“人生咨询”,想让哥哥帮忙解决这个问题,哥哥也不怎么会,但是哥哥怎么会拒接妹妹的请求呢,所以他来拜托你解决这个问题。

输入

第一行 两个数 n ,m(m<=n<=100000)

第二行 n个数,vi   (vi<100000)

输出

一个数表示答案

样例输入

5 3
1 2 3 4 5

样例输出

6

提示

解释:1 2 3// 4// 5 //  //为拿工资

又是最大最小,果断二分。之前还考虑怎么满足让连续子串和 = 二分的答案,其实不用,因为就算尺取出结果不符,也没办法判断下一步二分是大还是小,所以只考虑m就可以了。果然是签到题,手慢无( •̥́ ˍ •

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N = ;
LL a[N], n, m;
bool ok(LL x)
{
LL sum = , c = ;
for(LL i = ; i <= n; i++)
{
if(sum + a[i] > x)
{
c ++;
sum = ;
}
sum += a[i];
}
if(c < m) return ;
return ;
}
int main()
{
LL l = , r = 1e9;
scanf("%lld%lld", &n, &m);
for(LL i = ; i <= n; i++)
{
scanf("%lld", &a[i]);
l = max(a[i], l);
}
while(l <= r)
{
LL mid = (l+r)>>;
if(ok(mid))
r = mid - ;
else
l = mid + ;
}
printf("%lld\n", l);
return ;
}

最新文章

  1. C/C++: C++变量和基本类型
  2. Java方法调用中的别名处理
  3. java.net.BindException: address already in use &lt;null&gt;:xxxx
  4. dataWithContentsOfURL报错问题
  5. Cas_Server端安装
  6. BZOJ-3231 递归数列 矩阵连乘+快速幂
  7. Get start with Android development
  8. tar 分包压缩与合并
  9. 零基础学习云计算及大数据DBA集群架构师【Linux系统\网络服务及安全配置2015年1月8日周五】
  10. Equal 和==比较
  11. 使用md5判断网站内容是否被篡改
  12. Android MulticastSocket IP组播
  13. Java出现“Error configuring application listener of class...”类似的错误解决
  14. bzoj 1150: [CTSC2007]数据备份Backup
  15. django-rest-framework之基于类的视图
  16. Android简易实战教程--第十五话《在外部存储中读写文件》
  17. jQuery中的动画方法
  18. oracle11在docker环境下的运行
  19. 最适合入门的Laravel中级教程(三)表单验证
  20. github删除某个库repository

热门文章

  1. mysql中explain的用法
  2. hdu6206 Apple
  3. BestCoder #58 div1
  4. 【VS2015】未能创建 Visual C# 2015编译器
  5. Python学习笔记之函数参数传递 传值还是传引用
  6. CSS Outline(轮廓)
  7. DNS ARP地址解析原理
  8. FTP 两种工作模式
  9. Phred-scale quality scores的相关内容
  10. BootStrap实现图片轮播