首页 > 编程语言 > 详细

HDU5777 domino (BestCoder Round #85 B) 思路题+排序

时间:2016-07-31 14:19:56      阅读:242      评论:0      收藏:0      [点我收藏+]

分析:最终的结果肯定会分成若干个区间独立,这些若干个区间肯定是独立的(而且肯定是一边倒,左右都一样)

        这样想的话,就是如何把这n-1个值分成 k份,使得和最小,那么就是简单的排序,去掉前k大的(注意longlong)

技术分享
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <iostream>
#include <algorithm>
#include <map>
#include <queue>
#include <vector>
using namespace std;
typedef  long long LL;
const int N = 1e5+10;
int a[N];
int main(){
  int T,n,k;
  scanf("%d",&T);
  while(T--){
    scanf("%d%d",&n,&k);
    for(int i=1;i<n;++i)
      scanf("%d",&a[i]);
    LL ret=0;
    if(n<=k)ret+=n;
    else{
      sort(a+1,a+n);
      for(int i=1;i<=n-k;++i)ret+=a[i]+1;
      ret+=k;
    }
    printf("%I64d\n",ret);
  }
  return 0;
}
View Code

 

HDU5777 domino (BestCoder Round #85 B) 思路题+排序

原文:http://www.cnblogs.com/shuguangzw/p/5722904.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!