聪哥的工资

(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模拟赛 聪哥的工资相关推荐

  1. 【HHHOJ】NOIP模拟赛 捌 解题报告

    点此进入比赛 得分: \(30+30+70=130\)(弱爆了) 排名: \(Rank\ 22\) \(Rating\):\(-31\) \(T1\):[HHHOJ260]「NOIP模拟赛 捌」Dig ...

  2. jyzy noip模拟赛5.22-2

    不知道哪来的题 jyzy noip模拟赛5.22-2 样例输入 1 2 3 4 样例输出 0.200000000000000 数据 |a|,|b|,|c|,|d|<=1e9 很多大佬迅速想到二分 ...

  3. NOI.AC NOIP模拟赛 第六场 游记

    NOI.AC NOIP模拟赛 第六场 游记 queen 题目大意: 在一个\(n\times n(n\le10^5)\)的棋盘上,放有\(m(m\le10^5)\)个皇后,其中每一个皇后都可以向上.下 ...

  4. 【noip模拟赛4】Matrix67的派对 暴力dfs

    [noip模拟赛4]Matrix67的派对 描述 Matrix67发现身高接近的人似乎更合得来.Matrix67举办的派对共有N(1<=N<=10)个人参加,Matrix67需要把他们安排 ...

  5. NOIP模拟赛csy2021/10/30

    NOIP模拟赛csy2021/10/30 比赛时间规划 赛后反思与总结 这..总的来说感觉打的很不好,根本没有状态,有一部分原因是今天来晚了,太慌,更多的还是这次题感觉很难o(╥﹏╥)o 比赛时间规划 ...

  6. 【WZOI第二次NOIP模拟赛Day1T2】世界末日 解题报告

    [WZOI第二次NOIP模拟赛Day1T2]世界末日 Problem 2 世界末日 (doomsday.pas/c/cpp) 背景 话说CWQ大牛终于打开了那扇神秘大门,但迎接他的不是什么神秘的东西, ...

  7. NOIP 模拟赛 长寿花 题解

    NOIP 模拟赛 长寿花 题解 要放 \(n\) 层物品,第 \(i\) 层有 \(a_i\) 个位置放物品,物品有 \(m\) 中颜色,有约束条件: 同一层两个相邻物品颜色不能相同. 相邻两层颜色集 ...

  8. 辣鸡(ljh) NOIP模拟赛 模拟 平面几何 数论 化学相关(雾)

    [题目描述] 辣鸡ljhNOI之后就退役了,然后就滚去学文化课了. 然而在上化学课的时候,数学和化学都不好的ljh却被一道简单题难住了,受到了大佬的嘲笑. 题目描述是这样的:在一个二维平面上有一层水分 ...

  9. NOIP模拟赛套路技巧经验总结

    前言 还有2天就NOIP了,之前做了这么多场模拟赛,是时候拿出来总结一下, 算是给自己一针强心剂. 列表 从最近的考试总结起(个人认为的重点,可能有重复,仅供参考): (转化很重要,一定要简化问题过后 ...

最新文章

  1. 小蚂蚁学习数据结构(32)——二叉排序树的概念
  2. 比紫书优化,14行代码AC——例题 5-7 丑数(Ugly Numbers,UVa 136)——解题报告
  3. Pytorch出现RuntimeError: Input type (torch.cuda.FloatTensor) and weight type (torch.FloatTensor)
  4. Java 18 正式发布,默认 UTF-8,finalize 被弃用,别再乱用了!
  5. java中如何将数字转换成字符串(int转换为string)
  6. 面前的大山一座接一座
  7. Windows 下 C/C++ 多线程编程入门参考范例
  8. DM6467T开发板领航——开发环境
  9. Java对字符串进行的操作
  10. 【机器学习中的数学】多项式分布及其共轭分布
  11. 【表盘识别】基于matlab GUI二值化指针式表盘识别【含Matlab源码 275期】
  12. vpp之feature机制介绍
  13. matplotlib画图使用微软雅黑字体
  14. 如何从0到开始写短视频剧本,轻轻松松获得百万点赞
  15. 怎么看rx580是不是470刷的_rx580显卡怎么看是不是矿卡 rx580显卡怎么看是不是刷的...
  16. HackTheBox::Sunday
  17. 传奇开个服大概需要多少费用?
  18. CISA考试通过了!!
  19. 最新克米设计-APP手机版 数据本地化 完美使用【价值2380元】
  20. 高铁检测试验软件,京沪高铁试验检测项目

热门文章

  1. cmakefile 基础篇
  2. 红旗linux挂载硬盘命令,红旗6sp1修改默认挂载的硬盘分区
  3. 【kafka】kafka 启动报错 InvalidReceiveException: Invalid receive (size = -720899)
  4. 【Flink】Flink 1.9 升级 1.12.4 本地可以运行 打包后 集群运行就找不到类 ClassNotFoundException
  5. 【Spring】Spring 解决循环依赖的 3 种方式
  6. 【SpringMVC】SpringMVC: @RequestBody 和@ResponseBody 注解详解 NoHandlerFoundException
  7. Spring : lombok : 注解@Slf4j
  8. flink报错:typeutils.CompositeType$InvalidFieldReferenceException Cannot reference field by field expre
  9. mac下antlr4命令使用
  10. spark学习-38-Spark的MemoryManager