【二分】【中等难度】noip模拟赛 聪哥的工资
聪哥的工资
(money/money.in/money.out)
时限1000ms 内存256MB
题目描述
lwher: 了体验劳苦大众的生活,聪哥在暑假参加了打零工的活动,这个活动分为n个工作日,每个工作日的工资为Vi。有m个结算工钱的时间,聪哥可以自由安排这些时间,也就是说什么时候拿钱,老板说的不算,聪哥才有发言权!
(因为聪哥是土豪,他是老板的老板,你觉得老板敢给聪哥安排任务吗?所以聪哥的工作就是看心情去拿钱拿完就走人啦。。。)
聪哥不喜欢身上一次性有太多的钱,于是他想安排一下拿钱的时间,使他一次性拿的钱中最大的最小。(最后一天一定要领钱)
聪哥:晕,就是给你一个数列,让你分成m段,使各段中数字的和最大的最小
输入
第一行 2个数 n,m
接下来n行,每行一个数,代表Vi.
输出
最小的最大钱数。
样例输入
7 5
100
400
300
100
500
101
400
样例输出
500
样例说明
100 400//300 100//500//101//400//
“//”表示聪哥要去拿钱。
数据范围
20% 1<=n<=20
另 20% 1<=n<=50,Vi的和不超过1000
100% 1<=n<=100,000,m<=n,Vi<=10,000
思路
题面经过我加工一定更霸气了。。。
很明显的二分,看到最大的最小 或者 最小的最大 就是明显二分答案啊。。(这好像是吴桐当年跟我说的——)
二分答案,然后线性扫一遍判断这个答案是否符合就可以了。。。第一次写二分也没觉得太难啊
代码
1 #include<iostream> 2 #include<cstdio> 3 #include<cstdlib> 4 using namespace std; 5 int n,m; 6 int v[100005]; 7 int l,r,mid; 8 bool work(int large) 9 { 10 int total=0; //记录划分次数 11 int sum=0; //记录当前划分次的总和 12 for (int i=1;i<=n;i++) 13 { 14 if (v[i]>large) { return false; } 15 if ((sum+v[i])>large) 16 { 17 sum=v[i]; 18 total+=1; 19 if (total>m) {return false;} 20 } 21 else { sum+=v[i]; } 22 } 23 if ((total+1)<=m) {return true;} else {return false;} 24 } 25 26 int main() 27 { 28 freopen("money.in","r",stdin); 29 freopen("money.out","w",stdout); 30 cin>>n>>m; 31 for (int i=1;i<=n;i++) {cin>>v[i];r+=v[i];} 32 l=0; 33 while ((r-l)>1) 34 { 35 mid=(l+r)>>1; 36 if (work(mid)==true) {r=mid;} else {l=mid+1; } 37 } 38 if (work(l)==true) {cout<<l<<endl;} else {cout<<r<<endl;} 39 return 0; 40 }
特意显示了一下行号,40行打完代码你怕不怕?(/偷笑)
结果
时间用了好久啊,。。不过好像也没法优化。。。
转载于:https://www.cnblogs.com/seekdreamer/p/3961667.html
【二分】【中等难度】noip模拟赛 聪哥的工资相关推荐
- 【HHHOJ】NOIP模拟赛 捌 解题报告
点此进入比赛 得分: \(30+30+70=130\)(弱爆了) 排名: \(Rank\ 22\) \(Rating\):\(-31\) \(T1\):[HHHOJ260]「NOIP模拟赛 捌」Dig ...
- jyzy noip模拟赛5.22-2
不知道哪来的题 jyzy noip模拟赛5.22-2 样例输入 1 2 3 4 样例输出 0.200000000000000 数据 |a|,|b|,|c|,|d|<=1e9 很多大佬迅速想到二分 ...
- NOI.AC NOIP模拟赛 第六场 游记
NOI.AC NOIP模拟赛 第六场 游记 queen 题目大意: 在一个\(n\times n(n\le10^5)\)的棋盘上,放有\(m(m\le10^5)\)个皇后,其中每一个皇后都可以向上.下 ...
- 【noip模拟赛4】Matrix67的派对 暴力dfs
[noip模拟赛4]Matrix67的派对 描述 Matrix67发现身高接近的人似乎更合得来.Matrix67举办的派对共有N(1<=N<=10)个人参加,Matrix67需要把他们安排 ...
- NOIP模拟赛csy2021/10/30
NOIP模拟赛csy2021/10/30 比赛时间规划 赛后反思与总结 这..总的来说感觉打的很不好,根本没有状态,有一部分原因是今天来晚了,太慌,更多的还是这次题感觉很难o(╥﹏╥)o 比赛时间规划 ...
- 【WZOI第二次NOIP模拟赛Day1T2】世界末日 解题报告
[WZOI第二次NOIP模拟赛Day1T2]世界末日 Problem 2 世界末日 (doomsday.pas/c/cpp) 背景 话说CWQ大牛终于打开了那扇神秘大门,但迎接他的不是什么神秘的东西, ...
- NOIP 模拟赛 长寿花 题解
NOIP 模拟赛 长寿花 题解 要放 \(n\) 层物品,第 \(i\) 层有 \(a_i\) 个位置放物品,物品有 \(m\) 中颜色,有约束条件: 同一层两个相邻物品颜色不能相同. 相邻两层颜色集 ...
- 辣鸡(ljh) NOIP模拟赛 模拟 平面几何 数论 化学相关(雾)
[题目描述] 辣鸡ljhNOI之后就退役了,然后就滚去学文化课了. 然而在上化学课的时候,数学和化学都不好的ljh却被一道简单题难住了,受到了大佬的嘲笑. 题目描述是这样的:在一个二维平面上有一层水分 ...
- NOIP模拟赛套路技巧经验总结
前言 还有2天就NOIP了,之前做了这么多场模拟赛,是时候拿出来总结一下, 算是给自己一针强心剂. 列表 从最近的考试总结起(个人认为的重点,可能有重复,仅供参考): (转化很重要,一定要简化问题过后 ...
最新文章
- 小蚂蚁学习数据结构(32)——二叉排序树的概念
- 比紫书优化,14行代码AC——例题 5-7 丑数(Ugly Numbers,UVa 136)——解题报告
- Pytorch出现RuntimeError: Input type (torch.cuda.FloatTensor) and weight type (torch.FloatTensor)
- Java 18 正式发布,默认 UTF-8,finalize 被弃用,别再乱用了!
- java中如何将数字转换成字符串(int转换为string)
- 面前的大山一座接一座
- Windows 下 C/C++ 多线程编程入门参考范例
- DM6467T开发板领航——开发环境
- Java对字符串进行的操作
- 【机器学习中的数学】多项式分布及其共轭分布
- 【表盘识别】基于matlab GUI二值化指针式表盘识别【含Matlab源码 275期】
- vpp之feature机制介绍
- matplotlib画图使用微软雅黑字体
- 如何从0到开始写短视频剧本,轻轻松松获得百万点赞
- 怎么看rx580是不是470刷的_rx580显卡怎么看是不是矿卡 rx580显卡怎么看是不是刷的...
- HackTheBox::Sunday
- 传奇开个服大概需要多少费用?
- CISA考试通过了!!
- 最新克米设计-APP手机版 数据本地化 完美使用【价值2380元】
- 高铁检测试验软件,京沪高铁试验检测项目
热门文章
- cmakefile 基础篇
- 红旗linux挂载硬盘命令,红旗6sp1修改默认挂载的硬盘分区
- 【kafka】kafka 启动报错 InvalidReceiveException: Invalid receive (size = -720899)
- 【Flink】Flink 1.9 升级 1.12.4 本地可以运行 打包后 集群运行就找不到类 ClassNotFoundException
- 【Spring】Spring 解决循环依赖的 3 种方式
- 【SpringMVC】SpringMVC: @RequestBody 和@ResponseBody 注解详解 NoHandlerFoundException
- Spring : lombok : 注解@Slf4j
- flink报错:typeutils.CompositeType$InvalidFieldReferenceException Cannot reference field by field expre
- mac下antlr4命令使用
- spark学习-38-Spark的MemoryManager