BZOJ4766:文艺计算姬(矩阵树定理)
Description
Input
Output
Sample Input
Sample Output
Solution
首先先把(度数矩阵-邻接矩阵)搞出来,这里以样例为例。
$
\left\{
\begin{matrix}
3&0&-1&-1&-1\\
0&3&-1&-1&-1\\
-1&-1&2&0&0\\
-1&-1&0&2&0\\
-1&-1&0&0&2\\
\end{matrix}
\right\}
$
按照求矩阵树的方法随便删掉一行一列,这里删掉了最后一行和最后一列。
$
\left\{
\begin{matrix}
3&0&-1&-1\\
0&3&-1&-1\\
-1&-1&2&0\\
-1&-1&0&2\\
\end{matrix}
\right\}
$
把前$n-1$行和后$m-1$行都加到第$n$行
$
\left\{
\begin{matrix}
3&0&-1&-1\\
1&1&0&0\\
-1&-1&2&0\\
-1&-1&0&2\\
\end{matrix}
\right\}
$
用第$n$行的去加到后面$m-1$行上,把$-1$给消掉。
$
\left\{
\begin{matrix}
3&0&-1&-1\\
1&1&0&0\\
0&0&2&0\\
0&0&0&2\\
\end{matrix}
\right\}
$
这样的话这个矩阵的行列式显然就是$m^{n-1}n^{m-1}$了。
记得快速乘。
Code
- #include<cstdio>
- #define LL long long
- using namespace std;
- LL n,m,p;
- LL Mul(LL a,LL b)
- {
- LL tmp=a*b-(LL)((long double)a*b/p+0.1)*p;
- return tmp<?tmp+p:tmp;
- }
- LL Qpow(LL a,LL b)
- {
- LL ans=;
- while (b)
- {
- if (b&) ans=Mul(ans,a);
- a=Mul(a,a); b>>=;
- }
- return ans;
- }
- int main()
- {
- scanf("%lld%lld%lld",&n,&m,&p);
- printf("%lld",Mul(Qpow(n,m-),Qpow(m,n-)));
- }
BZOJ4766:文艺计算姬(矩阵树定理)的更多相关文章
- [bzoj4766] 文艺计算姬 (矩阵树定理+二分图)
传送门 Description "奋战三星期,造台计算机".小W响应号召,花了三星期造了台文艺计算姬.文艺计算姬比普通计算机有更多的艺 术细胞.普通计算机能计算一个带标号完全图的生 ...
- BZOJ 4766: 文艺计算姬 [矩阵树定理 快速乘]
传送门 题意: 给定一个一边点数为n,另一边点数为m,共有n*m条边的带标号完全二分图$K_{n,m}$ 求生成树个数 1 <= n,m,p <= 10^18 显然不能暴力上矩阵树定理 看 ...
- bzoj 4766: 文艺计算姬 矩阵树定理
题目: 给定一个一边点数为\(n\),另一边点数为\(m\),共有\(n*m\)条边的带标号完全二分图\(K_{n,m}\) 计算其生成树个数 \(n,m,p \leq 10^{18} ,p为模数\) ...
- bzoj4766 文艺计算姬
Description "奋战三星期,造台计算机".小W响应号召,花了三星期造了台文艺计算姬.文艺计算姬比普通计算机有更多的艺术细胞.普通计算机能计算一个带标号完全图的生成树个数, ...
- BZOJ4766: 文艺计算姬(Prufer序列)
题面 传送门 题解 结,结论题? 答案就是\(n^{m-1}m^{n-1}\) 我们考虑它的\(Prufer\)序列,最后剩下的两个点肯定是一个在左边一个在右边,设左边\(n\)个点,右边\(m\)个 ...
- Bzoj4766: 文艺计算姬(Matrix-tree/prufer)
BZOJ 答案就是 \(n^{m-1}m^{n-1}\) \(prufer\) 证明: \(n\) 中的数字出现 \(m-1\) 次,\(m\) 中出现 \(n-1\) 次,根据 \(prufer\) ...
- [bzoj4766]文艺计算姬——完全二分图生成树个数
Brief Description 求\(K_{n,m}\) Algorithm Design 首先我们有(Matrix Tree)定理,可以暴力生成几组答案,发现一些规律: \[K_{n,m} = ...
- 【BZOJ】4766: 文艺计算姬
[题目]给定两边节点数为n和m的完全二分图,求生成树数取模给定的p.n,m,p<=10^18. [算法]生成树计数(矩阵树定理) [题解]参考自 [bzoj4766]文艺计算姬 by WerKe ...
- 图论&数学:矩阵树定理
运用矩阵树定理进行生成树计数 给定一个n个点m条边的无向图,问生成树有多少种可能 直接套用矩阵树定理计算即可 矩阵树定理的描述如下: 首先读入无向图的邻接矩阵,u-v G[u][v]++ G[v][u ...
随机推荐
- Weex 学习文档、跳转路径、控制台输出、we转js汇总
最近在学习阿里的weex框架,网上教程真是不少,但是有用的确实是少的很.其中大多数都是讲如何配置移动端的,很少有讲到weex语法的.要知道,如果真需要用weex编写js页面的话,很有可能是移动端开发者 ...
- RestfulAPI超简单入门
简单入门 REST -- REpresentational State Transfer,英语的直译就是"表现层状态转移" 是目前最流行的 API 设计规范,用于 Web 数据接口 ...
- C#连接Oracle方式
1.在web.config或者app.config文件中,不会像连接SqlServer的格式那样,直接把账号密码写入就可以了 C#是微软的,oracle是Oracle公司做出来的,两家是对立的,都懂得 ...
- POJ2533(KB12-N LIS)
Longest Ordered Subsequence Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 50827 Acc ...
- 【 js 基础 】【读书笔记】Javascript “继承”
是时候写一写 “继承”了,为什么加引号,因为当你阅读完这篇文章,你会知道,说是 继承 其实是不准确的. 一.类1.传统的面向类的语言中的类:类/继承 描述了一种代码的组织结构形式.举个例子:“汽车”可 ...
- 排序算法(9)--Distribution Sorting--分布排序[1]--Counting sort--计数器排序
1.基本思想 假设数序列中小于元素a的个数为n,则直接把a放到第n+1个位置上.当存在几个相同的元素时要做适当的调整,因为不能把所有的元素放到同一个位置上.计数排序假设输入的元素都是0到k之间的整数. ...
- 洛谷P4396 [AHOI2013]作业(树套树)
题意 题目链接 Sol 为什么一堆分块呀..三维数点不应该是套路离线/可持久化+树套树么.. 亲测树状数组套权值线段树可过 复杂度\(O(nlog^2n)\),空间\(O(nlogn)\)(离线) # ...
- CSS隐藏多余的文字
效果: <p><strong>商品名称:</strong>新鲜现摘云南绥江半边红李子甜脆脱骨李6斤当季绿色有机水果包邮</p></div> ...
- Js 中对 Json 数组的常用操作
我们首先定义一个json数组对象如下: var persons = [ {name: "tina", age: 14}, {name: "timo", age: ...
- DevExpress.XtraCharts曲线上的点所对应的坐标值
private void chartControl_ObjectSelected(object sender, HotTrackEventArgs e) { e.Cancel = false; XYD ...