P1182 数列分段Section II
来源:互联网 发布:json转换为java对象 编辑:程序博客网 时间:2024/05/19 16:33
/*80分做法 题型:二分注意:范围为l<=r,左右区间注意。 */ #include <bits/stdc++.h>//万能头文件using namespace std;int n, m, x, f[100001], p, l, r, mid, sum, ans;//f数组前缀和,sum为分割数列的段数,ans为最终答案int main(){ scanf ( "%d %d", &n, &m ); for ( int i = 1; i <= n; i++ ) scanf ( "%d", &x ), f[i] = f[i-1] + x;//前缀和 l = 1, r = f[n];//定义二分的区间 while ( l <= r ){ mid = ( l + r ) >> 1;//二分套路不解释 p = 1, sum = 1;//初始就有1段,p为当前分段位置 for ( int i = 2; i <= n; i++ ){ if ( f[i] - f[p-1] > mid )//如果第i~p-1个数的和大于mid p = i, sum++;//当前位置为i,段数+1 } if ( sum > m ) l = mid + 1;//如果段数大于m,搜后半段 else r = mid - 1, ans = mid;//符合要求,把mid赋值给ans,搜前半段 } printf ( "%d\n", ans );//输出答案 return 0;}
阅读全文
0 0
- P1182 数列分段Section II
- 洛谷 P1182数列分段Section II
- 洛谷 P1182 数列分段Section II
- |洛谷|二分|P1182 数列分段Section II
- 洛谷 P1182 数列分段Section II
- luogu P1182 数列分段Section II
- 【分治】洛谷 P1182 数列分段Section II
- 水——洛谷P1182 数列分段Section II
- 洛谷P1182 数列分段Section II(二分)
- 洛谷 [P1182] 数列分段
- 洛谷1182 数列分段Section II
- 洛谷Oj-数列分段Section II-贪心 + 二分答案
- 数列分段Section I
- P1181 数列分段Section I
- P1181 数列分段Section I
- P1181 数列分段Section I
- P1181 数列分段Section I
- P1181 数列分段Section I
- openresty centos下开发环境安装
- bzoj 3040: 最短路(road)(堆优化dijkstra)
- 递归二叉树的序列打印、非递归二叉树的序列打印
- UVA
- 反爬虫四个基本策略
- P1182 数列分段Section II
- Swift_学习笔记_自动引用计数
- git中local branch追踪remote branch http://www.cnblogs.com/freefish12/p/5819134.html
- Intellij idea配置scala开发环境
- 普元EOS Platform逻辑流拦截器中如何传参?
- 玲珑学院OJ 1129 喵哈哈村的战斗魔法师丶坏坏い月【暴力分块】
- 多益网络校招笔试题
- 非递归实现两个有序链表
- 命令行压缩工具7z.exe使用详解