UVA 10843 - Anne's game(Cayley定理)

UVA 10843 - Anne‘s game

题目链接

题意:题意说得挺绕的,其实本质上就是求n个点,可以接连出多少种不同的生成树

思路:这是Caylay定理,网上能找到证明,结果为nn?2,然后利用快速幂去求解。

代码:

#include <stdio.h>
#include <string.h>

const int long long MOD = 2000000011;
int t;
long long n;

long long pow_mod(long long n, long long k) {
    if (k == 0) return 1;
    if (k == 1) return n;
    return (pow_mod(n * n % MOD, k / 2) * (k&1 ? n : 1)) % MOD;
}

int main() {
    int cas = 0;
    scanf("%d", &t);
    while (t--) {
    scanf("%lld", &n);
    printf("Case #%d: %lld\n", ++cas, n == 1 ? 1 : pow_mod(n, n - 2));
    }
    return 0;
}

UVA 10843 - Anne's game(Cayley定理)

时间: 2024-10-15 17:12:23

UVA 10843 - Anne's game(Cayley定理)的相关文章

UVA 11609 - Anne&#39;s game cayley定理

Lily: “Chantarelle was part of my exotic phase.”Bu?y: “It’s nice. It’s a mushroom.”Lily: “It is? That’s really embarrassing.”Bu?y: “Well, it’s an exotic mushroom, if that’s any comfort.”Joss Whedon, "Anne".A little girl whose name is Anne Spetri

uva 10843 - Anne&#39;s game(数论cayley定理)

题目链接:uva 10843 - Anne's game 题目大意:给出n,问说有n个节点构成的标号树有多少种. 解题思路:cayley定理的躶题. #include <cstdio> #include <cstring> typedef long long ll; const ll MOD = 2000000011; ll Pow (ll x, ll n) { if (n < 0) return 1; ll ans = 1; while (n) { if (n&1)

学习总结--数学.cayley定理

定义: 有n个标志节点的树的数目等于nn?2(仅是cayley在组合数学中的应用) 简单证明: 1.首先我们假设n为4,即有3个节点 2.这样的话我们就有k个子树,此时k=3 (图1) 3.选中其中一个节点C(1n),然后x 再选中不含该节点的一个子树C(1k?1),让这颗子树的根连接到该节点上,这样的话子树就减少了一棵 (图2) (图3) 等... 4.重复操作直到k=1,k从n变成1总共执行了n-1次,所以根据乘法原理,构造出的有确定根节点的树有ans=nn?1?(n?1)! 5.但是对于一

prufer编码 cayley定理

背景(在codeforces 917D 报废后,看题解时听闻了这两个玩意儿.实际上917D与之"木有关西",也可以认为是利用了prufer的一些思路.) 一棵标号树的Pufer编码规则如下:找到标号最小的叶子节点,输出与它相邻的节点到prufer 序列, 将该叶子节点删去,反复操作,直至剩余2个节点. 因为有n-2位,每位可以等于1,2,--,n,所以对应着有nn-2种生成树. 即Cayley定理(在组合数学中的应用):有n个标志节点的树的数目等于nn-2.(在一个n阶完全图的所有生成

Cayley凯莱定理——一一对应

定理 过$n$个有标志顶点的树的数目等于$n^{n-2}$. 此定理说明用$n-1$条边将$n$个已知的顶点连接起来的连通图的个数是$n^{n-1}$.也可以这样理解,将n个城市连接起来的树状网络有$n^{n-1}$种可能方案.所谓树状,指的是用$n-1$条边将$n$个城市连接起来,即无环.当然,建造一个树状网络一般是求其长度最短或造价最少等.Cayley定理只能说明可能方案的数目. 原文地址:https://www.cnblogs.com/lfri/p/10433011.html

循环群、对称群、陪集和拉格朗日定理、正规子群和商群

元素的阶 设<G,·>是群,a∈G,a的整数次幂可归纳定义为: a0 = e an+1 = an· a, n∈N a-n = (a-1)n, n∈N 容易证明,∀m,n∈I,am··an = am+n, (am)n = amn. 定义:设<G,·>是群,a∈G,若∀n∈I+,an ≠ e,则称a的阶是无限的:否则称使得an = e的最小整数n为a的阶,此时a的阶也称为a的周期,常用|a|表示 在群<I,+>中,∀i∈I - {0},i的阶都是无限的 在群<N4,+

长沙雅礼中学集训-------------------day3

今天的收获还是蛮大的,终于体会了一波在知识的海洋中遨游的美滋滋的快感. T1:给你N个点的位置和他们的速度,这些点向一个方向移动,求前M次超越者的集合A和被超越者的集合B(集合为这些点的速度),以及从A和B中各取一个并相乘,第k小的那个积. 数据范围:N<=1e5,M<=1e5,K<=M*M,起始位置和速度<=1e9 emmmm,写的是10分的暴力,可是出了一些奇奇怪怪的问题没有拿到这十分. 10分:直接暴力的算出交点,并且排序即可. 30分:在算交点前二分出一个时间,让算出的每次

prufer数列

涨姿势---prufer数列 一. 简介 Prufer数列是无根树的一种数列.在组合数学中,Prufer数列由有一个对于顶点标过号的树转化来的数列,点数为n的树转化来的Prufer数列长度为n-2.它可以通过简单的迭代方法计算出来.它由Heinz Prufer于1918年在证明cayley定理时首次提出. 二. (1)将树转换为prufer数列的方法. 总体的思路是迭代删点,直到原图中只剩下两个点.对于一棵树T,我们已经将每次找到树中标号最小的叶子结点,将这个叶子结点以及与它相邻的边删去,将与叶

组合数学知识要点

排列与组合 加法法则与乘法法则 基础思想:分类计数使用加法,分步计数使用乘法 Cayley定理 \(n\)个有标号顶点的树的个数为\(n^{n-2}\) 证明:定义一个消去序列,序列与树一一对应(略). 排列与组合 \(n\)元\(r\)排列:\(\frac{n!}{(n-r)!}\) \(n\)元\(r\)组合:组合数(naive) \(n\)元\(r\)可重排列:\(n^r\)(naive) \(n\)元\(r\)可重组合:\(\binom{n+r-1}{r}\) 多重集\(S=\{(a_1