UVA10843——Anne\'s game
Lily: “Chantarelle was part of my exotic phase.”
Buffy: “It’s nice. It’s a mushroom.”
Lily: “It is? That’s really embarrassing.”
Buffy: “Well, it’s an exotic mushroom, if that’s any comfort.”
Joss Whedon, "Anne".
A little girl whose name is Anne Spetring likes to play the following game. She draws a circle on
paper. Then she draws another one and connects it to the first cicrle by a line. Then she draws another
and connects it to one of the first two circles by a line. She continues this way until she has n circles
drawn and each one connected to one of the previously drawn circles. Her circles never intersect and
lines never cross. Finally, she numbers the circles from 1 to n in some random order.
How many different pictures can she draw that contain exactly n circles? Two pictures are different
if one of them has a line connecting circle number i to circle number j, and the other picture does not.
Input
The first line of input gives the number of cases, N. N test cases follow. Each one is a line containing
n (0 < n ≤ 100).
Output
For each test case, output one line containing ‘Case #x:’ followed by X, where X is the remainder
after dividing the answer by 2000000011.
Sample Input
3
1
2
3
Sample Output
Case #1: 1
Case #2: 1
Case #3: 3
?
題意:題目說畫圈,實(shí)際上圈可以看成是點(diǎn),然后就是求n個(gè)點(diǎn),可以接連出多少種不同的生成樹的問題了!
?
思路:Caylay定理,網(wǎng)上能找到證明,結(jié)果為n的n-2次方,然后利用快速二分冪求模去求解(以前總結(jié)的 快速二分冪求模)。
?code:
#include <iostream>#include <cstdio>
#include <algorithm>
using namespace std;
typedef long long ll;
const int mod=2000000011;
int T,n;
ll big_mod(int a,int b) //關(guān)鍵實(shí)現(xiàn)函數(shù),以前總結(jié)
{
ll ans=1,t=a;
while(b)
{
if(b&1) ans=ans*t%mod;
t=t*t%mod;
b>>=1;
}
return ans%mod;
}
int main()
{
scanf("%d",&T);
for (int ca=1;ca<=T;ca++)
{
int ans=1;
scanf("%d",&n);
if (n>1) ans=big_mod(n,n-2);
printf("Case #%d: %d\n",ca,ans);
}
}
總結(jié)
以上是生活随笔為你收集整理的UVA10843——Anne\'s game的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 成都大熊猫繁育研究基地为什么需要早到
- 下一篇: 北魏冯太后剧情介绍