UVa 11597 - Spanning Subtree
来源:互联网 发布:协同过滤具体算法 编辑:程序博客网 时间:2024/05/16 10:19
題目:有n個頂點的無向完全圖,最多能生成多少個沒有公共邊的生成樹。
分析:圖論,數論。
首先,n個頂點的完全圖共有n*(n-1)/ 2條邊,n個頂點的生成樹都含有n-1條邊,則最多為n/2個;
然後,存在性證明,利用構造方法,取生成樹的邊的方法如下(等差數列方式);
<1,2>,<2,3>,<3,4>,...
<1,3>,<3,5>,<5,7>,...
...
<1,a+1>,<a+1,2*a+1>,...
只需證明不存在<n1*a1+1,n1*a1+a1+1>与<n2*a2+2,n2*a2+a2+1>相同即可(a<=n/2);
将所有数字都减去1则,如果相同则只可能是:
n1*a1 ≡ n2*a2+a2 (mod n) 与 n2*a2 ≡ n1*a1+a1 (mod n) 將兩式相加可得 a1 = a2,得證;
說明:╮(╯▽╰)╭。
#include <stdio.h>int main(){int n, m = 1;while (~scanf("%d",&n) && n)printf("Case %d: %d\n", m ++, n/2);return 0;}
0 0
- UVa 11597 - Spanning Subtree
- Subtree
- Subtree
- subTree
- Spanning tree
- Spanning Tree
- spanning-tree
- #245 Subtree
- Minimum Subtree
- Minimum Subtree
- minimum subtree
- spanning tree 原理
- Spanning-Tree Feature configure
- stp(spanning tree protocol)
- spanning-tree 故障
- hdu4582 DFS spanning tree
- Spanning-Tree Uplinkfast
- Spanning Tree Protocol介绍
- Twitter也玩硬件了:投资高端耳机公司Muzik
- cocos2dx3.4 new Lua项目后编译黑屏问题的解决
- Cornerstone无法查看log解决办法
- MySql 数据库的备份与还原
- 解读Nodejs多核处理模块cluster
- UVa 11597 - Spanning Subtree
- 处理大并发之一 对异步非阻塞的理解
- C++11多线程(五):《<future> 详解一:std::promise 介绍》
- Linux环境下Python的安装过程 【内有python各版本的下载链接】
- centos 挂载与卸载硬盘
- 我眼中的那些编程语言,排名顺序
- DBNull,String.Empty,NULL和""的区别
- 25个Java机器学习工具&库
- Android studio 项目上传到JCentre