[51nod-1128]正整数分组V2 题解
来源:互联网 发布:微信公众开发java教程 编辑:程序博客网 时间:2024/06/06 02:52
题目传送门
题目要求最小值最大,而且分组是连续的,那么就没什么好说的了,二分答案+线扫直接上。
#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#define rep(i,a,n) for (int i=a;i<=n;i++)#define per(i,a,n) for (int i=a;i>=n;i--)#define Clear(a,x) memset(a,x,sizeof(a))#define ll long long#define INF 2000000000#define eps 1e-8#define db doubleusing namespace std;int read(){ int x=0,f=1; char ch=getchar(); while (ch<'0'||ch>'9') f=ch=='-'?-1:f,ch=getchar(); while (ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar(); return x*f;}const int maxn=50005;int n,m;ll l,r;ll a[maxn];bool check(ll mid){ ll sum=0,k=1; rep(i,1,n){ if (sum+a[i]>mid) k++,sum=0; if (k>m) break; sum+=a[i]; } return k<=m;}int main(){ n=read(),m=read(); rep(i,1,n) a[i]=read(),r+=a[i]; while (l<r){ ll mid=(l+r)>>1; if (check(mid)) r=mid; else l=mid+1; } printf("%lld\n",r); return 0;}
阅读全文
0 0
- [51nod-1128]正整数分组V2 题解
- 51nod 1128 正整数分组 V2
- 51Nod-1128-正整数分组 V2
- 51nod-1128-正整数分组 V2
- 51nod 1128 正整数分组 V2(二分)
- 【51Nod】1128 正整数分组 V2 二分答案
- 51nod 1007正整数分组 题解
- 51nod-正整数分组
- 51nod 正整数分组
- 51nod 正整数分组
- 51nod 1007 正整数分组
- 51Nod 1007 正整数分组
- 51nod 1007 正整数分组
- 51nod-1007 正整数分组
- 51nod 1007 正整数分组
- 51Nod 1007 正整数分组
- 51nod 1007 正整数分组
- 51nod 1007正整数分组
- 追踪递归函数
- 深入理解Eureka之源码解析
- 数据结构与算法(Python)-一般概念和算法效率分析
- Raspberry Pi 3B学习笔记
- 数据结构实验一!
- [51nod-1128]正整数分组V2 题解
- 多线程基础知识总结
- 现代化国家的标准
- 并发编程之ThreadLocal、Volatile、synchronized、Atomic关键字扫盲
- 2017 Fall SoftwareEngineering Learning (2)
- ldirectord对lvs进行检测
- JDK源码解析之ArrayList与Vector与CopyOnWriteArrayList
- datasource接口类 实现连接池连接数据库
- do{...}while(0)的意义和用法