【POJ 3273】 Monthly Expense (二分)
【POJ 3273】 Monthly Expense (二分)
一个农民有块地 他列了个计划表 每天要花多少钱管理 但他想用m个月来管理 就想把这个计划表切割成m个月来完毕 想知道每一个月最少花费多少 每一个月的花费是这个月的花费加和 必须按计划表的顺序来
全部天中花费中最大花费作为下界 全部花费加和作为上界 二分上下界间的花费可能 找出最少每月花费就可以
代码例如以下:
#include <iostream>
#include <cstdio> using namespace std; int ned[100000],n,m; bool can(int x)//推断是否可行
{
int i,sum = 0,cnt = 1;
for(i = 0; i < n; ++i)
{
sum += ned[i];
if(sum > x)//加上这天后此划分超过x 割开
{
sum = ned[i];
cnt++;
}
}
if(cnt > m) return false;//划分块数>m 不可行
return true;
} int main()
{
//freopen("in.in","r",stdin);
int l,r,i,mid,ans;
scanf("%d %d",&n,&m);
r = l = 0;
for(i = 0; i < n; ++i)
{
scanf("%d",&ned[i]);
r += ned[i];
l = max(l,ned[i]);
} while(l <= r)
{
mid = (l+r)>>1;
if(can(mid)) //可按mid划分的时候 此题数据真水 開始二分写挫了 还过了 3 2 4 4 4这组就能卡掉
{
ans = mid;
r = mid-1;
}
else l = mid+1;
}
printf("%d\n",ans);
return 0;
}
【POJ 3273】 Monthly Expense (二分)的更多相关文章
- POJ 3273 Monthly Expense二分查找[最小化最大值问题]
		
POJ 3273 Monthly Expense二分查找(最大值最小化问题) 题目:Monthly Expense Description Farmer John is an astounding a ...
 - POJ 3273 Monthly Expense(二分查找+边界条件)
		
POJ 3273 Monthly Expense 此题与POJ3258有点类似,一开始把判断条件写错了,wa了两次,二分查找可以有以下两种: ){ mid=(lb+ub)/; if(C(mid)< ...
 - POJ 3273 Monthly Expense(二分答案)
		
Monthly Expense Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 36628 Accepted: 13620 Des ...
 - POJ 3273 Monthly Expense 二分枚举
		
题目:http://poj.org/problem?id=3273 二分枚举,据说是经典题,看了题解才做的,暂时还没有完全理解.. #include <stdio.h> #include ...
 - poj 3273 Monthly Expense (二分)
		
//最大值最小 //天数的a[i]值是固定的 不能改变顺序 # include <algorithm> # include <string.h> # include <s ...
 - 二分搜索 POJ 3273 Monthly Expense
		
题目传送门 /* 题意:分成m个集合,使最大的集合值(求和)最小 二分搜索:二分集合大小,判断能否有m个集合. */ #include <cstdio> #include <algo ...
 - [ACM] POJ 3273 Monthly Expense (二分解决最小化最大值)
		
Monthly Expense Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 14158 Accepted: 5697 ...
 - poj 3273 Monthly Expense(贪心+二分)
		
题目:http://poj.org/problem?id=3273 题意:把n个数分成m份,使每份的和尽量小,输出最大的那一个的和. 思路:二分枚举最大的和,时间复杂度为O(nlog(sum-max) ...
 - POJ 3273 Monthly Expense 【二分答案】
		
题意:给出n天的花费,需要将这n天的花费分成m组,使得每份的和尽量小,求出这个最小的和 看题目看了好久不懂题意,最后还是看了题解 二分答案,上界为这n天花费的总和,下界为这n天里面花费最多的那一天 如 ...
 - poj 3273 Monthly Expense (二分搜索,最小化最大值)
		
题目:http://poj.org/problem?id=3273 思路:通过定义一个函数bool can(int mid):=划分后最大段和小于等于mid(即划分后所有段和都小于等于mid) 这样我 ...
 
随机推荐
- ASCII编码
			
ASCII(American Standard Code for Information Interchange,美国信息互换标准代码,ASCⅡ)是基于拉丁字母的一套电脑编码系统.它主要用于显示现代英 ...
 - BZOJ 3992 DP+NTT+快速幂
			
思路: 普通的DP很好想吧 f[i][j]+=f[i-1][j*s[k]] 前i个数 mod m=j 的个数 m是质数 模数是质数 这就很有趣了 那么我们就求出来原根 所有的数都取指数 搞出 ...
 - SSRS 报表 如何加参数
			
SSRS 报表 如何加参数 连接上以后出现一个问题 就是给报表加上参数以后报表不断刷新,跟上次那个报表刷新是同样的问题.那么下面我们来解决一下. 1. 这是给报表添加默认参数进入页面后就不断的刷新刷新 ...
 - 将我们的parser转换成Monad
			
还记得我们上一篇delegate类型的parser吗 ,在开始本篇之前,强烈建议你复习一下这个parser定义 public delegate Maybe<Tuple<T,string& ...
 - java MD5加密的工具类
			
import java.security.MessageDigest; /** * MD5加密工具类 * @author zwq */ public class MD5Util { /** * MD5 ...
 - 利用JavaScript的if语句判断元素显示隐藏
			
<html> <head> <meta charset="utf-8"> <title>无标题文档</title> &l ...
 - (转载) android studio library生成jar包和aar的方法总结
			
android studio library生成jar包和aar的方法总结 标签: android学习文档jar和aar的使用与生成gradle 2016-11-25 10:39 1782人阅读 评论 ...
 - 工厂模式-CaffeNet训练
			
参考链接:http://blog.csdn.net/lingerlanlan/article/details/32329761 RNN神经网络:http://nbviewer.ipython.org/ ...
 - ANN:DNN结构演进History—LSTM_NN
			
前言 语音识别和动作识别(Action.Activities) 等一些时序问题,通过微分方式可以视为模式识别方法中的变长模式识别问题.语音识别的基元为音素.音节,字母和句子模式是在时间轴上的变长序列 ...
 - PHP 数组 & 字符串处理
			
1:数组分割为字符串 implode 2:字符串分割为数组 explode() 3:替换字符串 eg: $a = "Hello world" str_replace(“H”,“ ...