POJ 3273 (最大组最小值)
来源:互联网 发布:笛卡尔心形线 c语言 编辑:程序博客网 时间:2024/05/17 03:42
题意:
有n个花费,现在要分成m组,要求分好后的最大的一组的和尽可能的小。
思路:
看到所求的问题肯定都会转不过来弯,其实想一想也很容易想到,m组是一定
要分的,分完之后肯定有一个组的和是最大值,现在我们就二分这个值。
两个注意点
- 上下界的问题,可以再输入的过程之中直接得到。
- 判断mid是否可行的思路是找到当前的a[i]是否属于这个组,有个小于的条件,值得学习。
#include <iostream>#include <cstring>#include <cstdio>using namespace std;const int MAXN = 100005;int n,m;int a[MAXN];int main(){ //freopen("in.txt","r",stdin); scanf("%d%d",&n,&m); __int64 L = 0,R = 0; for(int i = 1;i <= n; i++) { scanf("%d",&a[i]); R += a[i]; if(a[i] > L) L = a[i]; } while(L <= R) { __int64 mid = (L+R) >> 1; __int64 sum = 0; int num = 1; for(int i = 1;i <= n; i++) { if(sum + a[i] <= mid) { sum += a[i]; } else { sum = a[i]; num ++; } } if(num > m) L = mid + 1; else R = mid - 1; } printf("%I64d\n",L); return 0;}
0 0
- POJ 3273 (最大组最小值)
- poj 3258 二分最小值最大
- POJ 3264 区间最大最小值
- poj 3258 二分法求最小值最大
- poj 3264 线段树区间最大最小值
- poj 2823 poj 3264 线段树维护最大最小值
- 最大最小值
- 最大、最小值
- 最大、最小值
- poj 2823 线段树 求固定区间的最大最小值
- poj 3264 线段树 寻找最大最小值 SEGMENT TREE
- POJ 3264 ST表(RMQ问题:查询区间最大最小值)
- POJ 2253 floyd求最大边的最小值
- POJ 3258- River Hopscotch(二分求最小值最大)
- poj--3264Balanced Lineup+ST算法求区间最大最小值
- [POJ 3264]Balanced Lineup[树状数组查询区间最大最小值]
- POJ 3258 小牛过河 二分搜索最大的最小值
- POJ 2253 Frogger 【最大边权的最小值】
- sudo的环境变量获取
- 百度地图初见
- ajax请求如何避免表单重复提交
- 解决导入ReactiveCocoa框架报错问题
- 两个栈实现一个队列/两个队列实现一个栈
- POJ 3273 (最大组最小值)
- POJ 1269
- jsf标签详解
- Linux的使用<三> ubuntu16.04LTS安装Wine
- C# string数组转int数组
- BZOJ 1226: [SDOI2009]学校食堂Dining 状压DP
- CF 669E CDQ分治
- Butter Knife
- 关于classpath