问题 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