604B
2016-02-24 12:59
225 查看
题意:给定一个n和一个k,满足(1 ≤ n ≤ 2·k ≤ 100 000),然后给你n个数,按照不递减排列的,这里的k表示的是箱子的个数,你需要把这n个数装到k个箱子里面,一个箱子最多装两个数,这两个数的和就是箱子的容量。最后求箱子的最小容量时多少。
这个题有点坑,首先我们要考虑一下k>n的情况哈,那么就是n个数的最后一个数就是箱子的容量。
然后注意:
我们是不是想把小的尽量和小的组合放在一个箱子里面?
那么你就出错了哈,当时我就是靠这组数据去HACK的别人
4 2
1 2 3 5
如果你按照小的和小的组合,那么答案就是8
正确答案应该是6
然后你就会说那么就是小的和大的组合在一起。
那么你看这组数据:
5 3
1 1 2 2 8
你如果让小的和大的组合在一起,答案就是9
其实答案是8
不废话了,希望想想。
[cpp]
view plain
copy
print?
#include<bits/stdc++.h>
using namespace std;
long long a[100005];
int main()
{
int n,k;
while(~scanf("%d%d",&n,&k))
{
long long mm=-1;
for(int i=0; i<n; i++)
{
scanf("%lld",&a[i]);
mm=max(mm,a[i]);
}
int i,j;
if(2*k==n)//如果是刚好两倍的情况,那么就是大的和小的组合
{
i=0;
j=n-1;
for(int i=0;i<n/2;i++)
{
mm=max(mm,a[i]+a[j--]);
}
}
else//否则的话就应该用多出的箱子把当前最大的数字装了,然后再小的和大的组合,贪心的思想
{
j=n;
int cnt=n-k;
int cc=n-cnt*2;
while(cc--)
{
j--;
}
for(i=0;i<cnt;i++)
{
mm=max(mm,a[i]+a[--j]);
}
}
printf("%lld\n",mm);
}
}
这个题有点坑,首先我们要考虑一下k>n的情况哈,那么就是n个数的最后一个数就是箱子的容量。
然后注意:
我们是不是想把小的尽量和小的组合放在一个箱子里面?
那么你就出错了哈,当时我就是靠这组数据去HACK的别人
4 2
1 2 3 5
如果你按照小的和小的组合,那么答案就是8
正确答案应该是6
然后你就会说那么就是小的和大的组合在一起。
那么你看这组数据:
5 3
1 1 2 2 8
你如果让小的和大的组合在一起,答案就是9
其实答案是8
不废话了,希望想想。
[cpp]
view plain
copy
print?
#include<bits/stdc++.h>
using namespace std;
long long a[100005];
int main()
{
int n,k;
while(~scanf("%d%d",&n,&k))
{
long long mm=-1;
for(int i=0; i<n; i++)
{
scanf("%lld",&a[i]);
mm=max(mm,a[i]);
}
int i,j;
if(2*k==n)//如果是刚好两倍的情况,那么就是大的和小的组合
{
i=0;
j=n-1;
for(int i=0;i<n/2;i++)
{
mm=max(mm,a[i]+a[j--]);
}
}
else//否则的话就应该用多出的箱子把当前最大的数字装了,然后再小的和大的组合,贪心的思想
{
j=n;
int cnt=n-k;
int cc=n-cnt*2;
while(cc--)
{
j--;
}
for(i=0;i<cnt;i++)
{
mm=max(mm,a[i]+a[--j]);
}
}
printf("%lld\n",mm);
}
}
相关文章推荐
- 常见的响应式表格
- butterknife框架浅析
- JavaScript(三)-- DOM编程
- 远程连接Mysql数据库问题(ERROR 2003 (HY000))
- 细说 CSS margin
- Java开发中的23种设计模式详解(转)
- EJB-持久化Bean开发
- 使用jQuery.form插件,实现完美的表单异步提交
- iOS学习----------SDWebImage框架解析(1)
- Window计划任务调用exe程序时日志文件没有写出问题
- sqlserver整理的实用资料
- mysql 各版本的一些命令差异
- 使用require.js
- 函数声明后面的const用法
- javascript高级编笔记第二章第三章
- 自定义view中遇到的问题--绘制自定义view
- HDU5361 In Touch(线段树 + 最短路)
- Vector用法
- Spring Web Service 详细介绍
- android 之TCP客户端编程