看到\(purfer\)序列板子后,想到这个名词在哪见过,于是找到了一个题,还带出一个:

\(T1\).

题目链接:P4430 小猴打架

开始极其懵逼,考虑过大力容斥,但还是失败了,原来是:

Cayley定理(凯莱,反正是个神犇就对了):

\(n\)个节点的带标号的形态不同的无根树有\(n^{n-2}\)个,

再乘上\((n-1)!\)种生成方式即可,

\[ans=(n-1)!×n^{n-2}
\]

时间复杂度\(O(n+logn)\),你要是会快速阶乘,就可以\(O(logn)\)了。

\(Code\):

#include<iostream>
using namespace std;
const int mod=9999991;
long long quickpow(int a,int b)
{
long long ans=1,base=a;
while(b)
{
if(b&1) ans=ans*base%mod;
base=base*base%mod;
b>>=1;
}
return ans;
}
int n;
long long f;
int main()
{
cin>>n;
f=1;
for(int i=2;i<n;i++)
{
f=f*i%mod;
}
f=f*quickpow(n,n-2)%mod;
cout<<f;
return 0;
}

\(T2\).

题目链接:P4981 父子

一样的,只是考虑\(n\)种无根树,

\[ans=n^{n-1}
\]

复杂度\(O(Tlogn)\),可以通过本题。

\(Code\):

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int mod=1e9+9;
ll quickpow(ll a,ll b)
{
ll ans=1,base=a;
while(b!=0)
{
if(b&1!=0)
{
ans=ans*base%mod;
}
base=base*base%mod;
b>>=1;
}
return ans%mod;
}
int t,n;
int main()
{
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
int s=quickpow(n,n-1)%mod;
printf("%d\n",s);
}
return 0;
}

最新文章

  1. python 五子棋
  2. Java基本语法
  3. 使用即时文件初始化提高SQL Server性能
  4. IE Firefox Safari 下 通过Div“隐藏”设置Accesskey的submit input
  5. 敏捷开发系列之旅 第二站(走近XP极限编程)
  6. laravel资源路由详解
  7. org.springframework.beans.factory.BeanDefinitionStoreException错误
  8. APP产品设计及运营时常见的问题
  9. jQuery(一)
  10. 《ASP.NET Core In Action》读书笔记系列,这是一个手把手的从零开始的教学系列目录
  11. C++ 中缀转后缀表达式并求值
  12. Moco使用简单指导
  13. Redis防止重複請求鎖功能
  14. Kotlin语言Web库又添一虎将:Kweb
  15. 20145321 《网络对抗技术》 Web安全基础实践
  16. Java实验案例(接口)
  17. HTTP从入门到入土(3)——TCP三次握手
  18. js 获取后台数据分页
  19. django 连接mysql报错
  20. mysql replace 使用注意,update的时候 删除从表数据

热门文章

  1. 【代码学习】PHP面向对象之封装与继承
  2. 一行代码解决 sql语句 in传入数组变字符串
  3. 找到第N个字符
  4. CDH 搭建 问题
  5. Wcf托管在IIS中,HttpContext.Current为空
  6. typeof方法重写(区分数组对象)
  7. FreeSWITCH 加载模块过程解读
  8. 关于Action模型驱动无法获取属性的问题
  9. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 表格:在 &lt;tbody&gt; 内的任一行启用鼠标悬停状态
  10. sshd免密登陆