吐槽
题目被人说垃圾了,还有有点知识点的吧,呜呜呜呜呜呜呜,好难过,呜呜呜呜呜呜呜 ~~~~~~~~~
思维
- 首先题干要求是使用最小的边权之和使得 n n n 个点连通,那么就是最小生成树。同时边权有 1 ∼ m 1 \sim m 1∼m 那么我们只需要使用 n − 1 n - 1 n−1 条边就好了。那么最小的边权就是 ∑ i = 1 n i \sum_{i = 1}^{n}{i} ∑i=1ni 。
开long long!!!开long long!!!开long long!!!开long long!!!开long long!!!开long long!!!开long long!!!
- 要求图的边权之和等于顶点 1 1 1 到 n n n 的最短路径,那么这显然是以 1 , n 1, n 1,n 为端点的链,那说明是一定存在拓扑序的,那么答案之一就是 1 ∼ n 1 \sim n 1∼n 。
#include <bits/stdc++.h>
using namespace std;
int n, m;
int main() {
cin >> n >> m;
cout << 1ll * n * (n - 1) / 2 << endl;
for (int i = 1; i <= n; i ++ ) {
cout << i << ' ' ;
}
return 0;
}