Contest1040 - 第三届“图灵杯”NEUQ-ACM程序设计大赛(个人赛) H: 橙子姐姐的梦 基数排序

53 篇文章 0 订阅
6 篇文章 0 订阅



问题 H: 橙子姐姐的梦

时间限制: 1 Sec  内存限制: 256 MB
提交: 427  解决: 68
[提交][状态][讨论版]

题目描述

橙子姐姐偷走了船长的宝藏并买下了n(1<n<=10^6)个城市,编号从1到n,第i个城市的价格为ai,(0<ai<=10^4,且为整数),但是这n个城市之间没有路,不是互相连通的,因此他请来了工程师zcx来帮他修路。橙子姐姐想尽量多修路,但黑心的zcx为了赚更多的钱,告诉橙子姐姐1个城市最多只能有1条路连接其他城市,并且修一条路的费用等于橙子姐姐购买这条路相连的两个城市的费用总和。精明的橙子姐姐由于经费原因只能修k(1<=k<=10^3,k<n/2)条路,请帮橙子姐姐计算一下他最少花多少经费。

输入

第一行输入一个整数t(1<=t<=3)表示有t组测试数据,对于每组数据,第一行输入2个数n,k分别代表城市数量n和道路数量k,第二行输入n个数分别代表城市的价格a1,a2,a3…….an。

输出

对于每组数据,输出橙子姐姐总共花的钱.

样例输入

25 13 2 1 5 46 22 5 9 7 1 1

样例输出

39

提示

[提交][状态][讨论版]


用sort排序TLE了好久

改成基数排序不过用了map还TLE

最后改成正常的AC   好不容易啊  大哭


#include
   
   
    
    
#include
    
    
     
     
#include
     
     
      
      
using namespace std;
long long sum;
int v[10002];
int main()
{
    int n,m,i,t,x,kk;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d%d",&n,&m);
        sum=0;
        memset(v,0,sizeof(v));
        for(i=0; i
      
      
     
     
    
    
   
   



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值