UVa 11413 - Fill the Containers
2016-06-08 16:11
1031 查看
題目:給你一串連續的數字,連續的切割成m段,求每段和中最大的值的最小值。
分析:貪心+二分。二分上限,可以證明每次可以盡量多的加和,只要不超過上限。
說明:╮(╯▽╰)╭。
#include <cstring>
#include <cstdio>
int items[1111];
int container_size(int size, int value)
{
int sum = 0, count = 1;
for (int i = 0; i < size; ++ i) {
if (items[i] > value) {
return size;
}
if (sum + items[i] > value) {
sum = items[i];
count ++;
}else {
sum += items[i];
}
}
return count;
}
int main()
{
int n, m;
while (~scanf("%d%d",&n,&m)) {
int sum = 0, max = 0;
for (int i = 0; i < n; ++ i) {
scanf("%d",&items[i]);
sum += items[i];
if (max < items[i]) {
max = items[i];
}
}
int l = max, r = sum, mid = 0;
while (l < r) {
mid = (l+r)/2;
if (container_size(n, mid) <= m) {
r = mid;
}else {
l = mid+1;
}
}
printf("%d\n",l);
}
return 0;
}
分析:貪心+二分。二分上限,可以證明每次可以盡量多的加和,只要不超過上限。
說明:╮(╯▽╰)╭。
#include <cstring>
#include <cstdio>
int items[1111];
int container_size(int size, int value)
{
int sum = 0, count = 1;
for (int i = 0; i < size; ++ i) {
if (items[i] > value) {
return size;
}
if (sum + items[i] > value) {
sum = items[i];
count ++;
}else {
sum += items[i];
}
}
return count;
}
int main()
{
int n, m;
while (~scanf("%d%d",&n,&m)) {
int sum = 0, max = 0;
for (int i = 0; i < n; ++ i) {
scanf("%d",&items[i]);
sum += items[i];
if (max < items[i]) {
max = items[i];
}
}
int l = max, r = sum, mid = 0;
while (l < r) {
mid = (l+r)/2;
if (container_size(n, mid) <= m) {
r = mid;
}else {
l = mid+1;
}
}
printf("%d\n",l);
}
return 0;
}
相关文章推荐
- hdu2057 A + B Again
- HDU 4770 Lights Against Dudely(暴力)
- 容器组(Containers)
- pair 和 map结合应用——POJ 3096
- pair 和 map结合应用——POJ 3096
- Train Problem I
- 画图工具PaintCode的使用
- Messenger(轻量级的AIDL)
- SIM Hot Swap Plugin/out HISR fail while touch in touch panel
- Red5连接时错误:NetConnection.Connect.Failed
- Xenomai安装
- 【leetcode】Climbing Stairs
- 进程等待与终止
- 线程中sleep()和wait()的区别
- 70. Climbing Stairs
- Vmware Failed to login into NFC server Datastore error
- 用genymotion安装应用出现INSTALL_FAILED_CPU_ABI_INCOMPATIBLE的错误
- 《人工智能的明天,中国去哪儿》---汤晓鸥
- COPY, RETAIN, ASSIGN , READONLY , READWRITE,STRONG,WEAK,NONATOMIC整理
- ping: unknown host www.baidu.com