poj 3273
来源:互联网 发布:大数据基础平台架构 编辑:程序博客网 时间:2024/06/06 08:48
题目链接:http://poj.org/problem?id=3273
题意: 一个n个元素的序列,要求分成连续的m组,使得每组和最大的那一组的和最小。
思路: 二分答案,之后再贪心的来判断(从头开始如果出现连续的和大于答案的话就将之前的元素分成一组,最后看所分的组数是否大于m)。
整体的复杂度是o(nlogn).
#include <cstdio>#include <cstdlib>#include <iostream>using namespace std;const int maxn=1000010;typedef long long LL;int n,m;LL cc[maxn];bool jud(LL key){ int cnt=0; LL sum=0; for(int i=0;i<n;i++){ sum+=cc[i]; if(sum>key){ cnt++; sum=cc[i]; } } return (cnt+1)<=m? 1:0;}int main(){ //freopen("input.txt","r",stdin); LL st,ed,mid; bool flag; while(scanf("%d%d",&n,&m)!=EOF){ st=ed=0; for(int i=0;i<n;i++){ scanf("%lld",&cc[i]); ed+=cc[i]; st=max(st,cc[i]); } st--;ed++; while(ed-st>1){ mid=(st+ed)/2; flag=jud(mid); if(flag) ed=mid; else st=mid; } printf("%lld\n",ed); } return 0;}
0 0
- POJ 3273
- poj 3273
- poj 3273
- Poj 3273
- POJ 3273
- POJ-3273
- poj 3273
- POJ 3273
- poj 3273
- poj 3273
- POJ 3273
- POJ 3273
- 【POJ】3273
- poj 3273 Monthly Expense
- poj 3273 (二分)
- poj 3273(二分。。。很水。。。。)
- poj-3273 Monthly Expense
- poj 3273 二分法
- Xml Schema学习例子及命名空间
- python 用datetime和pytz来转换时区
- Android Studio 快捷键
- scanf/fscanf 的%[]和%n使用方法
- 史上最完整hadoop学习视频分享
- poj 3273
- VC实现程序最小化到系统托盘功能
- jquery.pager应用
- UVA Birthday Cake (一条直线平分草莓)
- [每天一个知识点]0-程序员的三大美德(0)
- 简单介绍String与常量池以及String.intern()
- 23-NSArray(NSMutableArray)-Foundation
- java编程思想总结3
- SQLiteDataBase