版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Miranda_ymz/article/details/82936552
A - Minimum’s Revenge HDU - 5922
分类:思维+最小公倍数
2018TYUT秋季ACM模拟赛(14)2016CCPC东北地区
题意&思路:给你n个点每两个点之间的边权值为这两个点标号的最小公倍数,问最小生成树的值为多少,很明显,所有数和1的最小公倍数最小,所以该最小生成树为1-n各点相连的数。答案就是n*(n+1)/2-1。考虑到超过边界,所以先直接不用加1 ,改为(n+2)*(n-1)/2;
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
int t,kcase=0;
long long n;
scanf("%d",&t);
while(t--)
{
cin>>n;
cout<<"Case #"<<++kcase<<": "<<(n-1)*(n+2)/2<<endl;
}
return 0;
}