博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BZOJ 4766: 文艺计算姬 [矩阵树定理 快速乘]
阅读量:6295 次
发布时间:2019-06-22

本文共 604 字,大约阅读时间需要 2 分钟。

题意:

给定一个一边点数为n,另一边点数为m,共有n*m条边的带标号完全二分图$K_{n,m}$
求生成树个数

1 <= n,m,p <= 10^18


显然不能暴力上矩阵树定理
看过推到完全图的生成树个数后这道题也不难做
构建出基尔霍夫矩阵,找一个主子式,所有行加起来放一行上,用这一行消消消就发现最后对角线上有$n-1$个$m$和$m-1$个$n$和$1$个$1$
然后要用快速乘...蒟蒻第一次用快速乘...
#include 
using namespace std;typedef long long ll;ll n,m,P;inline void mod(ll &x){
if(x>=P) x-=P;}inline ll Mul(ll a,ll b){ ll re=0; for(;b;b>>=1,mod(a+=a)) if(b&1) mod(re+=a); return re;}inline ll Pow(ll a,ll b){ ll re=1; for(;b;b>>=1,a=Mul(a,a)) if(b&1) re=Mul(re,a); return re;}int main(){ //freopen("in","r",stdin); cin>>n>>m>>P; cout<

 

 
 

转载地址:http://bopta.baihongyu.com/

你可能感兴趣的文章
JS获取上传文件的大小
查看>>
Shell脚本调用mysql语句
查看>>
远程连接服务器的方法:
查看>>
docker入门
查看>>
linux下如何判断oracle数据库tns是否设置正常
查看>>
dell物理服务器硬件磁盘监控
查看>>
sqlserver的事务回滚和设置事务保存点操作
查看>>
https搭建(openssl)
查看>>
CISCO上ADSL配置的方法
查看>>
队列实现qq解密
查看>>
制作RPM包
查看>>
mysql多实例脚本
查看>>
python文件操作举例
查看>>
Outlook 2003命令行参数开关详解
查看>>
mysql中文乱码问题的解决方案
查看>>
Redhat7开机图形或文字界面
查看>>
Linux state 方式 安装nginx 服务
查看>>
LNMP(php-fpm的pool,慢执行日志,定义open_bashdir,php-fpm进程管理
查看>>
Flask rst 文档转换为html格式文件
查看>>
python 安装第三方库pygame
查看>>