博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 3273
阅读量:5122 次
发布时间:2019-06-13

本文共 863 字,大约阅读时间需要 2 分钟。

传送门:

 

 解题四路:

C(d):代表分成M组每组的最大值为d(0<d<sum):

然后从二分枚举d就行了。

这类似最大化最小值

实现代码:

#include 
#include
#include
using namespace std;const int MAXN=100000;const int INF=1<<25;int a[MAXN];int N,M;/*flase 代表mid的取值太小true 代表mid的取值太大*/bool cal(int mid){ int sum=0; int cnt=0; for(int i=0;i
mid) return false; if(sum+a[i]>mid){ cnt++; sum=0; } sum+=a[i]; } if(sum>0) cnt++; if(cnt<=M) return true; else return false;}int main(){ cin>>N>>M; int sum=0; int Max=-INF; for(int i=0;i
1){ int mid=(L+R)>>1; if(cal(mid)){ R=mid; }else{ L=mid; } } cout<
<

 

转载于:https://www.cnblogs.com/IKnowYou0/p/6692530.html

你可能感兴趣的文章
Python内置函数(29)——help
查看>>
【题解】[P4178 Tree]
查看>>
QML学习笔记之一
查看>>
WPF中实现多选ComboBox控件
查看>>
Codeforces 719B Anatoly and Cockroaches
查看>>
ionic2+ 基础
查看>>
使用word发布博客
查看>>
GDOI DAY1游记
查看>>
MyBaits动态sql语句
查看>>
HDU4405(期望DP)
查看>>
拉格朗日乘子法 那些年学过的高数
查看>>
vs code 的便捷使用
查看>>
用户空间与内核空间,进程上下文与中断上下文[总结]
查看>>
JS 中的跨域请求
查看>>
JAVA开发环境搭建
查看>>
cassandra vs mongo (1)存储引擎
查看>>
Visual Studio基于CMake配置opencv1.0.0、opencv2.2
查看>>
SDN第四次作业
查看>>
django迁移数据库错误
查看>>
洛谷 1449——后缀表达式(线性数据结构)
查看>>