二分 poj 3273
题目链接:https://vjudge.net/problem/POJ-3273
把n个连续的数字划分成m个连续的部分,每个部分都有一个部分和(这个部分所有值加起来),现在要使划分里最大的那个部分和最小。
我用的也是二分,用二分枚举最大的部分和。
代码:
#include<iostream> #include<cstring> #include<algorithm> #include<queue> #include<map> #include<stack> #include<cmath> #include<vector> #include<fstream> #include<set> #include<cstdio> using namespace std; #define eps 1e-8 #define ll long long #define INF 0x3f3f3f3f ll n,m,money[100005]; ll jug(ll mid) //循环一次判断mid {ll cnt=0; //计数 ll sum=money[0];cnt++;if(sum>mid)return 0; if(cnt>m)return 0;for(int i=1;i<n;i++){if(sum+money[i]<=mid){sum+=money[i];}else{sum=money[i];if(sum>mid)return 0;cnt++;if(cnt>m)return 0;}}return 1; } ll two_(ll l,ll r) //二分求最小 {ll mid,pos;while(l<=r){mid=(l+r)/2;if(jug(mid)) //判断这个mid值是否可行, {r=mid-1;pos=mid; //pos记录当前值,这种写法比较保险,因为r值不一定可行,但是mid值是一定可行的 }else{l=mid+1;pos=l;}}return pos; } int main() {while(cin>>n>>m){ll sum=0;for(int i=0;i<n;i++){cin>>money[i];sum+=money[i];}cout<<two_(1,sum)<<endl;}return 0; }
转载于:https://www.cnblogs.com/6262369sss/p/9441428.html
二分 poj 3273相关推荐
- 【POJ 3273】 Monthly Expense (二分)
[POJ 3273] Monthly Expense (二分) 一个农民有块地 他列了个计划表 每天要花多少钱管理 但他想用m个月来管理 就想把这个计划表切割成m个月来完毕 想知道每一个月最少花费多少 ...
- 二分搜索 POJ 3273 Monthly Expense
题目传送门 1 /* 2 题意:分成m个集合,使最大的集合值(求和)最小 3 二分搜索:二分集合大小,判断能否有m个集合. 4 */ 5 #include <cstdio> 6 #incl ...
- Monthly Expense POJ - 3273(二分最大值最小化)
Farmer John is an astounding accounting wizard and has realized he might run out of money to run the ...
- 【POJ - 3273 】Monthly Expense (二分,最小最大值)
题干: Farmer John is an astounding accounting wizard and has realized he might run out of money to run ...
- 补充一下我对 POJ 3273 的理解,这肯定是我一生写的最多的题解。。。
题目:http://poj.org/problem?id=3273 当分成的组数越多,所有组的最大值就会越小或不变,这一点不难证明: 如果当前分成了group组,最大值是max,那么max的这 ...
- 寻找区域中有几个点 叉乘+二分 poj 2318
题目来源:http://poj.org/problem?id=2318 一个 矩阵 被分成多个 区域, 然后输入 多个点, 输出 每个区域点的 个数. 当寻找点 落在某个区域时, 用二分法. #inc ...
- POJ - 3273 Monthly Expense(二分水题)
题目链接:点击查看 题目大意:给出n个月的花费,要求将n个月分为连续的m个部分,让每个部分加和,取m个部分中的最大值,问最大值的最小值是多少 题目分析:直接二分答案即可,也算是完全凭自己没看题解做出来 ...
- I - Monthly Expense POJ - 3273
ZYH学长非常菜,这一天他看到了这一题: 给你一个长度为N的序列,现在需要把他们切割成M个子序列(所以每一份都是连续的),使得每个子序列和均不超过某个值X 但是ZYH学长实在太菜了,这个问题困扰了他很 ...
- taoqick 搜索自己CSDN博客
L1 L2正则化和优化器的weight_decay参数 kaiming初始化的推导 Pytorch动态计算图 Pytorch自动微分机制 PyTorch中在反向传播前为什么要手动将梯度清零? 通俗讲解 ...
最新文章
- 汇智清华,医道生机 | 第四届清华校友三创大赛医疗健康行业论坛圆满召开
- 单元测试试图告诉我们关于 Activity 的什么事情:第二部分
- 当CDN遇上对象存储:完美!
- 计算机视觉 模型、学习和推理 Computer vision:models,learning and inference(免费下载)
- 对于局部变量_2020年对于JDK ,大家觉得哪个版本好用?
- Eclipse不给提示no default proposals
- 数组名与指向数组的指针之间的联系与区别【数据结构】
- 22岁何同学引爆B站!硬核毕设树莓派星轨拍摄仪,上演理工男的终极浪漫
- android input出现一个多余文本窗口 解决办法
- LeetCode:交替打印【1115】
- CUDA学习(九十四)
- “八戒”马德华自传《悟能》首发《西游记》师徒五人再聚首
- 拓端tecdat|使用R语言进行时间序列(arima,指数平滑)分析
- 关闭qcom soc系列手机的ramdump mode
- 定理在数学中的简写形式_初中数学常用的定理大全
- 奥巴马,别让底特律变成你的越南
- PIC18f46j50单片机里SPI部分的一点程序
- 树莓派的GPIO端口详解
- 结合北斗PPP_B2b 导航电文进行精密定位(PPP)
- openldap用法
热门文章
- C++ —— C++引用
- python怎么数据归一化_基于数据归一化以及Python实现方式
- 数据结构之树:树的介绍——9
- 回溯算法背包问题迭代c语言,回溯法解决0_1背包问题(迭代和递归)
- python 属性描述符
- 天池 在线编程 能否转换
- Java JDK 安装配置
- LeetCode 956. 最高的广告牌(DP)
- LeetCode 1598. 文件夹操作日志搜集器
- [Kesci] 预测分析 · 客户购买预测(AUC评估要使用predict_proba)