bzoj1430
2024-10-18 06:07:49
这道题只是给bzoj1005做一个铺垫
这里介绍了一个叫prufer编码的东西,就是
给定一棵带标号的无根树,找出编号最小的叶子节点,写下与它相邻的节点的编号,
然后删掉这个叶子节点。反复执行这个操作直到只剩两个节点为止。
这个编码有几个重要的性质
1. 每棵树都唯一对应一个prufer编码
2. 每一个prufer编码都唯一对应一棵树
3. 树上每个点的度数-1=这个点在数列出现的次数
所以用这个解决完全图生成树个数就很显然了,答案是n^(n-2)
const mo=;
var c:array[..] of longint;
i,j,p,b:longint;
ans,n:int64; begin
readln(n);
j:=;
b:=n-;
while b<> do
begin
inc(j);
c[j]:=b mod ;
b:=b div ;
end;
ans:=;
for i:=j downto do
begin
ans:=sqr(ans) mod mo;
if c[i]= then ans:=ans*int64(n) mod mo;
end;
for i:= to n- do
ans:=ans*int64(i) mod mo;
writeln(ans);
end.
最新文章
- 转载一些Android性能优化建议
- Java多线程4:synchronized锁机制
- Unity3D热更新全书-脚本(三) C#LightEvil语法与调试
- TCP/IP --- UDP Broadcast Address
- 4.2 set和multiset
- 关于自定义adapter使用getApplicationContext()影响主题
- 12.06 JavaScript
- 【summary】JQuery 相关css、ajax、数据操作函数或方法
- 如何将md文件转换成带目录的html文件
- 如何在sublime+chrome中调试php代码?
- PCA, SVD以及代码示例
- Jenkins初识
- 第1章 背景 - Identity Server 4 中文文档(v1.0.0)
- HDFS的一些重要流程
- mysql 2006错误 导入时
- Java OOM 常见情况
- js贪心算法---钱币找零问题
- 【LOJ】#2264. 「CTSC2017」吉夫特
- cocoapods卸载与安装
- navicat premium 的使用——navicat 连接MySQL数据库