“浪潮杯”第九届山东省ACM大学生程序设计竞赛重现赛 C-Cities

Posted 霜雪千年

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了“浪潮杯”第九届山东省ACM大学生程序设计竞赛重现赛 C-Cities相关的知识,希望对你有一定的参考价值。

题目描述:There are n cities in Byteland, and the ith city has a value ai. The cost of building a bidirectional road between two cities is the sum of their values. Please  calculate the minimum cost of connecting these cities, which means any two cities can reach each other.输入描述:第一行是一个表示测试用例数量的整数  t(t<=105)。对于每个测试用例,第一行是一个整数n(n<=105),代表城市的数量,第二行是n个 正整数ai(ai<=105) ,代表它们的值。

输出描述

For each test case, output an integer, which is the minimum cost of connecting these cities.
示例1

输入

2
4
1 2 3 4
1
1

输出

12
0
解题思路:水题!将最低成本的城市分别与n-1个城市直接相连,这就是修道路所花费最低成本的方法。
AC代码:
 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 const int maxn=1e5+5;
 4 int a[maxn];
 5 int main()
 6 {
 7     int t,n;long long sum;//这里要用long long
 8     cin>>t;
 9     while(t--){
10         cin>>n;sum=0;
11         for(int i=0;i<n;++i)
12             cin>>a[i];
13         sort(a,a+n);
14         for(int i=1;i<n;++i)
15             sum+=a[i];
16         if(sum>0)cout<<(sum+a[0]*(n-1))<<endl;
17         else cout<<0<<endl;
18     }
19     return 0;
20 }

以上是关于“浪潮杯”第九届山东省ACM大学生程序设计竞赛重现赛 C-Cities的主要内容,如果未能解决你的问题,请参考以下文章

总结2018年山东省第九届ACM大学生程序设计竞赛

“师创杯”山东理工大学第九届ACM程序设计竞赛

第九届“图灵杯”NEUQ-ACM程序设计竞赛个人题解

第九届“图灵杯”NEUQ-ACM程序设计竞赛个人题解

第九届“图灵杯”NEUQ-ACM程序设计竞赛个人赛 签到题11题

第九届福建省大学生程序设计竞赛 2018.8.26组队训练赛