JDOJ 2225 工资计划
JDOJ 2225: 工资计划
https://neooj.com/oldoj/problem.php?id=2225
Description
高考结束后,同学们大都找到了一份临时工作,渴望挣得一些零用钱。从今天起,
Matrix67将连续工作N天(1<=N<=100 000)。每一天末他可以领取当天及前面若干
天里没有领取的工资,但他总共只有M(1<=M<=N)次领取工资的机会。Matrix67已
经知道了在接下来的这N天里每一天他可以赚多少钱。为了避免自己滥用零花钱,
他希望知道如何安排领取工资的时间才能使得领到工资最多的那一次工资数额最小。
注意Matrix67必须恰好领工资M次,且需要将所有的工资全部领走(即最后一天末需
要领一次工资)。
Input
第一行输入两个用空格隔开的正整数N和M
以下N行每行一个不超过10000正整数,依次表示每一天的薪水。
Output
输出领取到的工资的最大值最小是多少。
Sample Input
100
400
300
100
500
101
400
Sample Output
#include<cstdio>
#include<algorithm>
using namespace std;
int n,m,sum,ans,maxn;
int a[];
bool check(int x)
{
int tot=,cnt=;
for(int i=;i<=n;i++)
{
if(tot+a[i]<=x)
{
tot+=a[i];
continue;
}
tot=a[i];
cnt++;
}
if(tot>)
cnt++;
if(cnt<=m)
return ;
else
return ;
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)
{
scanf("%d",&a[i]);
sum+=a[i];
maxn=max(maxn,a[i]);
}
int l=maxn;
int r=sum;
while(l<=r)
{
int mid=(l+r)>>;
if(check(mid))
ans=mid,r=mid-;
else
l=mid+;
}
printf("%d",ans);
return ;
}
二分写法二:
#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn=1e5+;
int n,m,cnt,tot;
int l,r,ll,rr;
int a[maxn];
bool check(int x)
{
tot=;cnt=;
for(int i=;i<=n;i++)
{
if(tot+a[i]<=x)
{
tot+=a[i];
continue;
}
tot=a[i];
cnt++;
}
if(tot>)
cnt++;
if(cnt<=m)
return ;
else
return ;
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)
{
scanf("%d",&a[i]);
ll=max(ll,a[i]);
rr+=a[i];
}
l=ll;r=rr;
while(l<r)
{
int mid=(l+r)/;
if(check(mid))
r=mid;
else
l=mid+;
}
printf("%d",l);
return ;
}
JDOJ 2225 工资计划的更多相关文章
- vijos1710 Mrw的工资计划
#include <iostream> #include <cstdio> #include <algorithm> #include <cstring> ...
- 洛谷 P1182 数列分段 Section II
洛谷 P1182 数列分段 Section II 洛谷传送门 题目描述 对于给定的一个长度为N的正整数数列A-iA−i,现要将其分成M(M≤N)M(M≤N)段,并要求每段连续,且每段和的最大值最小. ...
- 评点SAP HR功能及人力资源管理软件
评点SAP HR功能及人力资源管理软件 本文导航 第1页:my SAP 人力资源软件 第2页:my SAP HR协同功能 第3页:组织结构管理 第4页:mySAPTM HR的战略功能 第5页:集成 ...
- 实战java虚拟机的学习计划图(看懂java虚拟机)
啥也不说了,实战java虚拟机,好好学习,天天向上!针对自己的软肋制定学习计划. 一部分内容看完,自己做的学习笔记和感想. 学java很简单,但懂java会有难度,如果你的工资还没超过1W,那是时候深 ...
- 如何用分析函数找出EMP表中每个部门工资最高的员工
EMP表是Oracle测试账户SCOTT中的一张雇员表,首先,我们来看看emp表的数据 SQL> select * from emp; EMPNO ENAME JOB MGR HIREDATE ...
- 2014总结&2015计划
2014总结&2015计划 今天是2015/1/1,新的一年终于到来了,昨天老板要求提交2014的工作总结和2015的工作计划,正好提醒我,要总结和计划了. 先回顾2014年初的计划: 新年计 ...
- HDU--杭电--4502--吉哥系列故事——临时工计划--背包--01背包
吉哥系列故事——临时工计划 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) To ...
- 工资不高也要给自己放假 这几款APP估计你用得上
我是这样的一个人,我宁愿工资不高,只要给我足够的假期,那我就满足了.都说上班就是为了赚钱,但如果身体不好,赚再多的钱也是无福享受,所以建议各位,有机会的话,一定要抽出时间去旅游,去放松. 现在我们外出 ...
- HTML5-前端开发很火且工资很高?
前言 晚上逛论坛看到一篇对从事HTML5前端开发的文章写的非常不错,和目前的市场形势差不多,然后我在其基础上给大家进行加工总结一下分享给大家.今天我们谈论的话题是<<为什么从事HTML5前 ...
随机推荐
- 【BZOJ3171】[TJOI2013] 循环格(网络流)
点此看题面 大致题意: 给你一个循环格,每个格子有一个方向.问你至少修改多少格子,才能使从每个格子出发都能回到原格子. 建图 这是道网络流题目,主要就是考虑如何建图. 我们可以把每个点拆成两个点,一个 ...
- Note | Ubuntu18.04安装与配置
目标: 在服务器上配置最新的Ubuntu稳定版本18.04 LTS.18.04比16.04好看很多,非常建议. 有3块硬盘:2块4TB机械硬盘,1块2TB固态硬盘.计划将固态硬盘作为主硬盘,其余两块机 ...
- Gradle java使用
安装 去gradle官网下载然后解压,把bin路径添加到PATH变量即可 查看版本号 gradle -v 生成gradle项目 在新建/已有项目目录下初始化项目 gradle init 配置仓库源 编 ...
- 彻底解决Intellij IDEA中文乱码问题
关于JAVA IDE开发工具,Eclipse系列和Intelli IDEA是大部分公司的主要选择,从开发者的选择角度,Intellij IDEA似乎比Eclipse系列更受欢迎一些.当我们使用Inte ...
- vscode10个必装的插件
VSCode 必装的 10 个高效开发插件 本文介绍了目前前端开发最受欢迎的开发工具 VSCode 必装的 10 个开发插件,用于大大提高软件开发的效率. VSCode 的基本使用可以参考我的原创 ...
- 物联网架构成长之路(43)-k8s从入门到放弃
0. 前言 这段时间要入门一下CI/CD了,以前简单的了解过Jenkins,现在要把以下的这个图的架构搭建起来.国外可能一两个命令就安装完成的事情,我折腾了2天多,真的差点放弃了. 1. 安装Virt ...
- resharper 8.2
用户名:ronle注册码:ZoJzmeVBoAv9Sskw76emgksMMFiLn4NM
- V2Ray+WebSocket+TLS+Nginx 配置及使用
v2ray 是一个模块化的代理工具,支持 VMess,Socks,HTTP,Shadowsocks 等等协议,并且附带很多高级功能,HTTP,TLS 等等. 关键词限制,全文 v2ray 中的 y 为 ...
- QGIS中查看PostGIS空间数据库中的影像
在QGIS中的Browser中是无法显示PostGIS空间数据库中的影像 要找到影像显示打开"Database" –> "DB Manager" 右击-- ...
- 阿里Jvm必问面试题及答案
什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? Java虚拟机是一个可以执行Java字节码的虚拟机进程.Java源文件被编译成能被Java虚拟机执行的字节码文件. Java被设计 ...