题目:http://acm.hdu.edu.cn/showproblem.php?pid=5922
题意:
两点的边的权值是两个点的最小公倍数。求一颗最小生成树,使累加权值最小。
思路:
推一推,显然是从2加到n,带入累加公式即可。
#include<bits/stdc++.h>
#define ll long long int
using namespace std;
int main(){
int t,Case=0;
cin>>t;
while(t--){
ll n;
scanf("%d",&n);
ll ans;
if(n%2)
ans=(n+1)/2*n-1;
else
ans=n/2*(n+1)-1;
printf("Case #%d: %lld\n",++Case,ans);
}
return 0;
}