51Nod-1128-正整数分组 V2
来源:互联网 发布:windows agent 安装 编辑:程序博客网 时间:2024/06/01 07:19
ACM模版
描述
题解
这道题,话题是二分,并且讨论区中 qwb 说这是五级题中最最最简单的题了,于是我也只好向着二分想,可是我想了十几分钟也没有想通如何二分,大概是我思维闭塞吧,二分没有用到精髓,看了讨论区的大致思路,一下子就明白了,二分+贪心。
首先求所有数的和,然后二分之,根据每一个 mid 判断是否有合法的分割手法,当然这个判断用的就是贪心的思维,代码十分容易理解,作为职业马后炮,我必须说,这个题是五级题最简单的了,如果你大脑没有抽筋儿的话。像我这种大脑别跟儿筋的人,越是往二分想,越卡壳,因为只想着二分搞,却忽略了需要结合贪心判定。
代码
#include <iostream>using namespace std;typedef long long ll;const int MAXN = 5e4 + 10;int N, K;ll A[MAXN];int check(ll num){ int m = K; ll sum = 0; for (int i = 0; i < N; i++) { if (sum + A[i] > num) { sum = A[i]; m--; } else { sum += A[i]; } } if (m > 0) { return 1; } return 0;}ll bs(ll l, ll r){ while (l < r) { ll mid = (l + r) >> 1; if (check(mid)) { r = mid; } else { l = mid + 1; } } return l;}int main(){ cin >> N >> K; ll sum = 0; for (int i = 0; i < N; i++) { scanf("%lld", &A[i]); sum += A[i]; } cout << bs(1, sum) << endl; return 0;}
0 0
- 51nod 1128 正整数分组 V2
- 51Nod-1128-正整数分组 V2
- [51nod-1128]正整数分组V2 题解
- 51nod-1128-正整数分组 V2
- 51nod 1128 正整数分组 V2(二分)
- 【51Nod】1128 正整数分组 V2 二分答案
- 51nod-正整数分组
- 51nod 正整数分组
- 51nod 正整数分组
- 51nod 1007 正整数分组
- 51Nod 1007 正整数分组
- 51nod 1007 正整数分组
- 51nod-1007 正整数分组
- 51nod 1007 正整数分组
- 51Nod 1007 正整数分组
- 51nod 1007 正整数分组
- 51nod 1007正整数分组
- 51Nod 1007 正整数分组
- 关于mac 10.12.3 USB启动盘制作 分享
- Struts jar包详解
- android 仿ios系统桌面小红点
- windbg高级条件断点初探
- 1051. Pop Sequence
- 51Nod-1128-正整数分组 V2
- vue2+express+mysql小练习
- Tensorflow一些常用基本概念与函数1
- 《ACM程序设计》书中题目 U
- 特征检测和描述(SURF)
- VB键盘输入、常量定义与输出文字和参数
- java实现二叉平衡树
- linux 下redis 安装,python 链接测试
- c++bug小结(一)