设为首页 加入收藏

TOP

poj Monthly Expense(最大值最小化)
2015-07-20 17:42:33 来源: 作者: 【 】 浏览:1
Tags:poj Monthly Expense 最大值 最小化

Monthly Expense


题目链接:Click Here~

题目分析:

给出N个数,要求你合并连续的数,使其合并在满足不差过M个合并后的集合的时候,不超过M个集合的和的最大值最小。


思路分析:

1、二分集合的和的最小值。

2、C:判断是否满足集合不超过M个?


#include 
  
   
#include 
   
     #include 
    
      using namespace std; const int MAXN = 100000 + 10; const int INF = ~0U >> 2; int mony[MAXN]; int N,M; bool C(int m){ int j,cnt = 0; for(int i = 0;i < N;i = j){ if(mony[i] > m) return false; int sum = 0; j = i; while(j < N&&sum + mony[j] <= m){ sum += mony[j]; ++j; } cnt++; } return cnt <= M; } void solve(){ int lb = -1,ub = INF; while(ub - lb > 1){ int mid = (lb + ub) / 2; if(C(mid)) ub = mid; else lb = mid; } printf("%d\n",ub); } int main() { while(~scanf("%d%d",&N,&M)){ for(int i = 0;i < N;++i) scanf("%d",&mony[i]); solve(); } return 0; } 
    
   
  

??

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇浅谈C++ Lambda 表达式(简称LB) 下一篇C++中的重载,隐藏,虚函数,多态..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·工业机器人TCP校准中 (2025-12-25 05:19:17)
·opc 通讯协议与 TCP (2025-12-25 05:19:15)
·labview中tcp/ip通信 (2025-12-25 05:19:13)
·新书介绍《Python数 (2025-12-25 04:49:47)
·怎么利用 Python 进 (2025-12-25 04:49:45)