POJ 3273 Monthly Expense 【二分答案】
2024-08-30 11:25:34
题意:给出n天的花费,需要将这n天的花费分成m组,使得每份的和尽量小,求出这个最小的和
看题目看了好久不懂题意,最后还是看了题解
二分答案,上界为这n天花费的总和,下界为这n天里面花费最多的那一天
如果mid>=m,说明mid偏小,l=mid+1,
如果mid<m,说明mid偏大,r=mid,
#include<iostream>
#include<cstdio>
#include<cstring>
#include <cmath>
#include<stack>
#include<vector>
#include<map>
#include<set>
#include<queue>
#include<algorithm>
using namespace std; typedef long long LL;
const int INF = (<<)-;
const int mod=;
const int maxn=; int a[maxn];
int n,m,k; int ok(int v){
int ans=;
int cnt=;
for(int i=;i<=n;i++){
ans+=a[i];
if(ans>v){
ans=a[i];
cnt++;
}
}
if(cnt>=m) return ;
return ;
} int main(){
while(scanf("%d %d",&n,&m)!=EOF){
int minn=-,maxx=;
for(int i=;i<=n;i++) {
scanf("%d",&a[i]);
maxx+=a[i];
minn=max(minn,a[i]);
} LL l=minn,r=maxx,mid;
while(l<r){
mid=(l+r)/;
if(ok(mid)) r=mid;
else l=mid+;
// printf("l=%d\n",l);
// printf("r=%d\n",r);
// printf("mid=%d\n",mid);
} printf("%I64d\n",l);
}
return ;
}
最新文章
- iOS Swift 3 open
- libdispatch for Linux
- 一个.net mvc的例子
- 第六篇、CSS属性
- linux上ln命令详细说明
- python模块—urllib
- VS2010添加默认路径,库以及Lib
- 微信小程序源码推荐
- Xcode在playground的quick look框中显示对象自定义视图
- Android ViewPager和Slidingmenu手势冲突问题
- JaveScript基础(3)之正则表达式
- 2017年4月13日用VS写C程序遇到的一些问题
- Grouping ZOJ - 3795 (tarjan缩点求最长路)
- 使用centos7构建本地git服务器
- python学习笔记8--面向对象--属性和方法详解
- POJ 1258 Agri-Net(Prim算法求解MST)
- word2vec 中的数学原理详解(一)目录和前言【转】
- OK335xS pwm device register hacking
- task optimization
- bootstrap3中select2的默认值和下拉框的禁用
热门文章
- Centos7 minimal 系列之rabbitmq安装(八)
- MySQL中的存储函数和存储过程的简单示例
- swift使用查阅资料备份2
- EM_LGH CF965D Single-use Stones 思维_推理
- node——读取文件中的路径问题
- systemd bug: bz1437114 core:execute: fix fork() fail handling in exec_spawn()
- js 获取对象长度
- Git:与GitHub搭配及SSH登录
- mybatis-plus注解版实现多表联查(sql)
- JQuery封装ajax的方法