【zzuliOJ】1919 - 晴天分数字(二分)
来源:互联网 发布:d3.js 力学图 编辑:程序博客网 时间:2024/05/17 22:42
点击打开题目
1919: 晴天分数字
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 179 Solved: 38
SubmitStatusWeb Board
Description
晴天想把一个包含n个整数的序列a分成连续的若干段,且和最大的一段的值最小,但他有强迫症,分的段数不能超过m段,然后他就不会分了。。。他想问你这个分出来的和最大的一段的和最小值是多少?
Input
第一行输入一个整数t,代表有t组测试数据。
每组数据第一行为两个整数n,m分别代表序列的长度和最多可分的段数。
接下来一行包含n个整数表示序列。
0<=n<=50000 1<=m<=n,0<=ai<=10000。
Output
输出一个整数表示和最大的一段的最小值。
Sample Input
13 21 3 5
Sample Output
5
HINT
1 3 5 分成一段可以为1 3 5和为9,分成两段可以为1,3 5或者1 3,5,和最大的一段值分别为8,5,所以答案为5
Source
haut
题目本来只是个字母,我随便起的。
可以知道结果是个线性的。
代码如下:
#include <stdio.h>#include <cstring>#include <algorithm>using namespace std;#define CLR(a,b) memset(a,b,sizeof(a))#define INF 0x3f3f3f3f#define LL long longint sum[50000+11];int n,m;bool check(int x){ if (x >= sum[n]) return true; if (x < sum[1]) return false; int pos = upper_bound(sum+1 , sum+1+n , x) - sum - 1; int k = m - 1; int ne; while (pos != n) { if (k <= 0) return false; ne = upper_bound(sum+1 , sum+1+n , sum[pos] + x) - sum - 1; if (ne == pos) return false; //x太小 pos = ne; k--; } return true;}int main(){ int u; int t; int l,r,mid; sum[0] = 0; scanf ("%d",&u); while (u--) { scanf ("%d %d",&n,&m); for (int i = 1 ; i <= n ; i++) { scanf ("%d",&t); sum[i] = t + sum[i-1]; } l = 0; r = sum[n]; while (r >= l) { mid = (l + r) >> 1; if (check(mid)) r = mid - 1; else l = mid + 1; } printf ("%d\n",l); } return 0;}
0 0
- 【zzuliOJ】1919 - 晴天分数字(二分)
- zzuliOJ 1918:晴天寻宝之旅(二分图匹配)
- 【zzuliOJ】1917 - 晴天算价值(二分 & STL)
- zzulioj 1919: D 晴天分段求和
- 【zzuliOJ】1921 - 晴天的序列(dp)
- ZZULIOJ 1919: D【二分】
- 【zzulioj 1919 二分】
- zzulioj-1919-D【二分】
- zzuliOJ 1919:分割序列(二分+限制条件判断)
- 【Zzulioj 1919】多校训练三(二分->最大值最小化)
- 【zzuliOJ】1918 - 寻宝(二分图)
- 【zzulioj 1918 二分图】
- 【zzulioj 1917 二分+vector】
- ZZULIOJ 1427: 数字转换
- ZZULIOJ-1898-985的数字难题(水题)
- zzuliOJ 1898:985的数字难题(思维)
- ZZULIOJ 1108: 打印数字图形(函数专题,水题)
- 【暑期训练三】晴天系列—G题(二分图最大匹配之匈牙利算法)
- HDU 1166再来一个基础线段树
- 909422229__Mysql全部精华总结
- 【NOIP模拟】Matrix
- c++继承经典案例
- 【幻化万千戏红尘】qianfengDay28-XML解析之SAX和PULL解析基础学习:
- 【zzuliOJ】1919 - 晴天分数字(二分)
- Android第三方应用分享图文到微信朋友圈 & 微信回调通知分享状态
- 几个关于Android Studio的问题及解决方案
- zzulioj 1918 (二分图--最大匹配)
- git学习
- poj 3087 Shuffle'm Up
- 【zzulioj 1915 三维数组】
- Merge Intervals解题报告
- BZOJ3526 [Poi2014]Card