题目描述
Farmer John is an astounding accounting wizard and has realized he might run out of money to run the farm. He has already calculated and recorded the exact amount of money (1 ≤ moneyi ≤ 10,000) that he will need to spend each day over the next N (1 ≤ N ≤ 100,000) days.

FJ wants to create a budget for a sequential set of exactly M (1 ≤ M ≤ N) fiscal periods called “fajomonths”. Each of these fajomonths contains a set of 1 or more consecutive days. Every day is contained in exactly one fajomonth.

FJ’s goal is to arrange the fajomonths so as to minimize the expenses of the fajomonth with the highest spending and thus determine his monthly spending limit.

给出农夫在n天中每天的花费,要求把这n天分作m组,每组的天数必然是连续的,要求分得各组的花费之和应该尽可能地小,最后输出各组花费之和中的最大值

输入格式
Line 1: Two space-separated integers: N and M

Lines 2…N+1: Line i+1 contains the number of dollars Farmer John spends on the ith day

输出格式
Line 1: The smallest possible monthly limit Farmer John can afford to live with.

输入输出样例
输入 #1复制
7 5
100
400
300
100
500
101
400
输出 #1复制
500
说明/提示
If Farmer John schedules the months so that the first two days are a month, the third and fourth are a month, and the last three are their own months, he spends at most $500 in any month. Any other method of scheduling gives a larger minimum monthly limit.

题目大意:有n个数,要分成m份,每份的和要尽可能小,求这个情况下和最大的一份的和。

解题思路:
二分+贪心

代码如下:

#include <iostream>
using namespace std;
typedef long long LL;
int n, k;
const int N = 100010;
int a[N];bool check(int mid) {int p = 1;LL sum = 0;for (int i = 0; i < n; i++) {if (a[i] + sum <= mid) {sum += a[i];} else {p++;sum = a[i];if (sum > mid)return false;}}return p <= k;
}int main() {LL sum = 0;cin >> n >> k;for (int i = 0; i < n; i++) {cin >> a[i];sum += a[i];}LL l = 1, r = sum;while (l < r) {LL mid = l + r >> 1;if (check(mid)) {r = mid;} else {l = mid + 1;}}cout << r << endl;return 0;
}

洛谷P2884 [USACO07MAR]Monthly Expense S相关推荐

  1. 洛谷 P2884 【[USACO07MAR]每月的费用Monthly Expense】

    见题"要求分得各组的花费之和应该尽可能地小,最后输出各组花费之和中的最大值",出现最大值最小(注意:不是最小值最大,一开始也理解错了,因为是开销最大的一组,其开销要最小) 考虑使用 ...

  2. 洛谷P2881 [USACO07MAR]排名的牛Ranking the Cows(bitset Floyd)

    题意 题目链接 Sol 显然如果题目什么都不说的话需要\(\frac{n * (n - 1)}{2}\)个相对关系 然后求一下传递闭包减掉就行了 #include<bits/stdc++.h&g ...

  3. USACO Monthly Expense

    洛谷 P2884 [USACO07MAR]每月的费用Monthly Expense https://www.luogu.org/problem/P2884 POJ 3273 Monthly Expen ...

  4. 2021寒假——洛谷刷题计划(35题)

    (希望大家不要Copy) AC:Accept,程序通过. CE:Compile Error,编译错误. PC:Partially Correct,部分正确. WA:Wrong Answer,答案错误. ...

  5. 洛谷-题解 P2672 【推销员】

    独门思路!链表加优先队列! 这题一望,贪心是跑不掉了,但是我贪心并不好,所以想到了一个复杂一些但思路更保稳的做法 思路: 1 因为是离线操作,所以我们可以倒着求,先求x=n的情况,因为那样直接就知道了 ...

  6. 洛谷 P1142 轰炸

    洛谷 P1142 轰炸 题目描述 "我该怎么办?"飞行员klux向你求助. 事实上,klux面对的是一个很简单的问题,但是他实在太菜了. klux要想轰炸某个区域内的一些地方,它们 ...

  7. 洛谷 P1387 最大正方形

    P1387 最大正方形 题目描述 在一个n*m的只包含0和1的矩阵里找出一个不包含0的最大正方形,输出边长. 输入输出格式 输入格式: 输入文件第一行为两个整数n,m(1<=n,m<=10 ...

  8. 洛谷P2763 试题库问题

    题目:https://www.luogu.org/problemnew/show/P2763 题目描述 «问题描述: 假设一个试题库中有n道试题.每道试题都标明了所属类别.同一道题可能有多个类别属性. ...

  9. 动态规划——洛谷_P1057传球游戏

    题目: 题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏.游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球, ...

最新文章

  1. [20170420]关于延迟块清除3.txt
  2. 数据采集埋点福音!《企业埋点体系搭建方法论及实践经验》白皮书上线
  3. iviewui php,Vue UI框架对比:Element UI、Ant Design Vue、iView
  4. 【Linux】一步一步学Linux——head命令(41)
  5. c#中 cmd.parameters.add() 方法的问题
  6. 国际主流云厂商生存画像:三大赛道愈发清晰
  7. 【最详细】测试点分析_1051 复数乘法 (15分)_14行代码AC
  8. CSDN《程序员》杂志创始人蒋涛-推荐《程序员职场第一课》
  9. SpringBoot多数据源切换详解,以及开启事务后数据源切换失败处理
  10. 变分模态分解python代码_VMD变分模态分解代码问题
  11. 怎样删除Word文档的强制性回车、断行
  12. java中null字符串与字符串长度为0的区别
  13. conda 设置清华镜像源_conda使用清华镜像源问题
  14. 【专业课程】网络协议分析与安全
  15. [论文阅读笔记38]基于多标准主动学习EMR实体识别方法
  16. 一个简单的连续变焦红外镜头的从零开始的设计过程(zemax)(二)进一步优化,公差分析
  17. php无法访问_php突然不能访问的原因
  18. BuildPack:无需编写 Dockerfile,新一代的企业镜像打包工具
  19. Laya1.x Timer小记
  20. 网络信息检索(七)搜素引擎体系结构与排序算法

热门文章

  1. 剑指offer之重建二叉树
  2. Eclipse提示The **** cannot be resolved. It is indirectly referenced from required .cl
  3. C++之operator关键字(重载操作符) 使用总结
  4. Android之FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET
  5. Android之开发者应该收藏的优秀博客和技术网站
  6. 七、功能性组件与事件逻辑(IVX 快速开发教程)
  7. python总线 rabbitmq_python - 操作RabbitMQ
  8. wireshark-win64-3.4.0安装_这9类轴承的安装方法,你可都知道?有哪些需要注意的呢?...
  9. 简单而又不平凡的杨辉三角形
  10. 预售┃一张纸一幅图,竟然提高了10倍的学习和工作效率!?