https://ac.nowcoder.com/acm/contest/23477/E
最小路我是根据画图推出来的,就是把每三条相邻的边都划成最短的,可以发现最短路永远是 n − 1 n - 1 n−1,然后根据定义得,欧拉图要么全是偶点,要么有两个奇点,可以发现,当n为奇数时,该完全图每个点都是偶点,所以可以走全;当为偶数时,每个点都是奇点,至少需要删掉几条边使这个图只具有两个奇点,那就是减去 n / 2 − 1 n/2-1 n/2−1。然后完全图得总边数是 n ∗ ( n − 1 ) / 2 n * (n - 1) / 2 n∗(n−1)/2,由首项加末项得公式得来。
#include<bits/stdc++.h>
#define int long long
using namespace std;
signed main()
{
int n;
cin >> n;
cout << n - 1 << " ";
if (n % 2 == 0) cout << (1 + n - 1) * (n - 1) / 2 - (n / 2 - 1);
else cout << (1 + n - 1) * (n - 1) / 2;
return 0;
}