原题见:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=102271#problem/F
题目要求:打包问题,典型贪心。。。。。已知牛铃铛数和箱子数,求最小号的箱子尺寸。 值得注意的是,牛铃铛的大小按升序已经排好。
代码如下:
#include<stdio.h> #include<stdlib.h> long long MAX(long long a, long long b) {return a>b?a:b;} int main() { long long n,k,s[100000]={0},max; long long i,j; scanf("%lld %lld",&n,&k); for(i=0;i<n;i++) scanf("%lld",&s[i]); max=s[n-1]; //维护数据 for(i=0;i<n-k;i++) max=MAX(max,(s[i]+s[2*(n-k)-i-1])); /*单独装一个的箱子装最大的,要装两个的箱子,必然装剩下的里面最大的和最小的,第二大和第二小,以此类推*/ printf("%lld ",max); return 0; }