小沙的长路(图论,欧拉图)

博客探讨了完全图中寻找最小路径的问题,指出最短路径总是等于n-1,其中n是顶点数。文章还讨论了欧拉图的性质,指出欧拉图要么所有顶点都是偶点,要么只有两个奇点。对于奇数个顶点的完全图,可以遍历所有边,而对于偶数个顶点的情况,需要删除适当数量的边以形成两个奇点。最后,给出了计算完全图边数的公式,并提供了C++代码实现来计算特定情况下的最短路径和边数。
摘要由CSDN通过智能技术生成

https://ac.nowcoder.com/acm/contest/23477/E

最小路我是根据画图推出来的,就是把每三条相邻的边都划成最短的,可以发现最短路永远是 n − 1 n - 1 n1,然后根据定义得,欧拉图要么全是偶点,要么有两个奇点,可以发现,当n为奇数时,该完全图每个点都是偶点,所以可以走全;当为偶数时,每个点都是奇点,至少需要删掉几条边使这个图只具有两个奇点,那就是减去 n / 2 − 1 n/2-1 n/21。然后完全图得总边数是 n ∗ ( n − 1 ) / 2 n * (n - 1) / 2 n(n1)/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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值