当前位置: 首页 > 编程日记 > 正文

BZOJ4766: 文艺计算姬

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 737  Solved: 402
[Submit][Status][Discuss]

Description

"奋战三星期,造台计算机"。小W响应号召,花了三星期造了台文艺计算姬。文艺计算姬比普通计算机有更多的艺
术细胞。普通计算机能计算一个带标号完全图的生成树个数,而文艺计算姬能计算一个带标号完全二分图的生成树
个数。更具体地,给定一个一边点数为n,另一边点数为m,共有n*m条边的带标号完全二分图K_{n,m},计算姬能快
速算出其生成树个数。小W不知道计算姬算的对不对,你能帮助他吗?

Input

仅一行三个整数n,m,p,表示给出的完全二分图K_{n,m}
1 <= n,m,p <= 10^18

Output

仅一行一个整数,表示完全二分图K_{n,m}的生成树个数,答案需要模p。

Sample Input

2 3 7

Sample Output

5

HINT

Source

算法1

结合MatrixTree定理打表或者归纳证明

算法2

根据prufe

r因为prufer序列对应着唯一的一棵树,问题转为计算有多少合法的prufer序列。 
“一种生成Prufer序列的方法是迭代删点,直到原图仅剩两个点。”根据prufer序列的性质,最后剩下的两个点一定有一条边,在二分图中有连边的两点一定处于不同集合。在删除时会“移去所有叶子节点(度为1的顶点)中标号最小的顶点和相连的边,并把与它相邻的点的编号加入Prufer序列中”,每删除一个点都需要将与它连边的点加到prufer序列中,而二分图中的边两端的点一定属于不同集合,那么A集合有n-1个点被删除,也就是说B集合中的数需要被加入n-1次,共有$m^n1$种可能;B集合同理,有m-1个点被删除,也就是说A集合中的数需要被加入m-1次,共有$n^m1$种可能。 
两种情况相乘得到答案为$n^{m1}m^{n1}$

#include<cstdio>
#include<cstring>
#include<algorithm>
#define int long long 
using namespace std;
const int MAXN=1e6+10,INF=1e4+10;
inline int read()
{char c=getchar();int x=0,f=1;while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();}return x*f;
}
int fastmul(int a,int p,int mod)
{int base=0;while(p){if(p&1) base=(base+a)%mod;a=(a+a)%mod;p>>=1;}return base;
}
int fastpow(int a,int p,int mod)
{int base=1;while(p){if(p&1) base=fastmul(base,a,mod)%mod;a=fastmul(a,a,mod)%mod;p>>=1;}return base;
}
main()
{int N=read(),M=read(),P=read();printf("%lld",fastmul(fastpow(N,M-1,P),fastpow(M,N-1,P),P)%P);return 0;
}

转载于:https://www.cnblogs.com/zwfymqz/p/8456205.html

相关文章:

Android调用远程Service的参数和返回值都需要实现Parcelable接口

import android.os.Parcel;import android.os.Parcelable; public class Person implements Parcelable{   private Integer id;   private String name;   private String pass;   public Person() {     super();   } public Person(Integer id, String name, …

git的简单命令

git init 初始化管理库 git add file_name 将文件添加到文件管理库 git commit -m “xxx” 将文件提交到文件管理库&#xff08;xxx&#xff1a;说明文字&#xff09; git status 查看当前状态 git diff 查看文件改动的地方 git log 查看历史版本提交记录(如果觉…

区块链概念:Hash 算法

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自链客区块链技术问答社区&#xff0c;未经允许拒绝转载。 区块链概念1&#xff1a;Hash 算法 作用在学习哈希算法前&#xff0c;我们需要知道哈希在区块链的作用哈希算法的作用如下&#xff1a;区块…

java 文件操作

文件操作——File File表示目录信息 listFiles方法 File的listFiles方法用于返回一个抽象路径名数组&#xff0c;这些路径名表示此抽象路径名表示的目录中的文件。其方法定义: File[] listFiles()返回值&#xff1a;抽象路径名数组&#xff0c;这些路径名表示此抽象路径名表示的…

三维等值面提取算法(Dual Contouring)

上一篇介绍了Marching Cubes算法&#xff0c;Marching Cubes算法是三维重建算法中的经典算法&#xff0c;算法主要思想是检测与等值面相交的体素单元并计算交点的坐标&#xff0c;然后对不同的相交情况利用查找表在体素单元内构建相应的网格拓扑关系。Marching Cubes算法简单&a…

设置status bar的颜色

statusBar显示电池电量、时间、网络部分标示的颜色只能设置两种颜色&#xff1a; 默认的黑色&#xff08;UIStatusBarStyleDefault&#xff09;白色&#xff08;UIStatusBarStyleLightContent&#xff09; 配置info.plist文件 1.View controller-based status bar appearance…

EOS与以太坊有哪些区别?

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自链客区块链技术问答社区&#xff0c;未经允许拒绝转载。 以太坊是一个专门为开发和运行去中心化应用&#xff08;DAPP&#xff09;搭建的智能合约平台&#xff1b;EOS与以太坊类似&#xff0c;同样…

Quartz 2D基本图形的绘制

基本步骤&#xff1a; 1.获取绘图上下文 2.创建并设置路径 3.将路径添加到上下文 4.设置上下文状态 5.绘制路径 6.释放路径 #import "YGView.h" //屏幕尺寸#define kScreenSize [UIScreen mainScreen].bounds.size//屏幕宽高定义#define kscreenWidth [[UIScr…

命令行程序增加 GUI 外壳

Conmajia © 2012 Updated on Feb. 21, 2018 命令行大家都用过&#xff1a; 图 1 命令行程序工作界面 现在想办法为它做一个 GUI 外壳&#xff0c;实际效果参考图 2. 图 2 带 GUI 外壳的命令行程序 程序思路是这样的&#xff1a; 通过运行 cmd.exe 来操作命令行&#xff0c…

人月神话阅读笔记07

第1章 焦油坑焦油坑的意思说明了即使你足够强大&#xff0c;也无法摆脱束搏而沉到坑底。IT项目也是这样&#xff0c;不论是开发大型软件系统还是小型项目&#xff0c;都会遇到诸多复杂的问题和影响因素&#xff0c;项目本身就是一个足够复杂的动态系统&#xff0c;没有最优&…

区块链隐私:交易还是计算?

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自链客区块链技术问答社区&#xff0c;未经允许拒绝转载。 区块链隐私&#xff1a;交易还是计算&#xff1f; 隐私”是什么意思?在区块链生态系统中&#xff0c;“隐私”这个词被用于许多不同的语…

8 ServletContext

1 为什么需要ServletContext 技术 显示网站多少人在线&#xff0c;显示当前登录者是第几位登录者等信息。 2 什么是ServletContext 可以把它想象成一个服务器上的公共空间&#xff0c;每个用户都可以访问到它。 Web 容器在启动时&#xff0c;它会为每个Web 应用程序都创建一个对…

IOS沙盒Files目录说明和常用操作

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // 读取Documents目录代码 NSArray *pathsDocumentsNSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES); NSString *pathDocu…

iOS一些实用的技巧

获取触摸的点- (CGPoint)locationInView:(UIView *)view; - (CGPoint)previousLocationInView:(UIView *)view;自动适应父视图大小self.view.autoresizesSubviews YES;self.view.autoresizingMask UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;把pli…

在公共区块链中通过加密保护数据

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自链客区块链技术问答社区&#xff0c;未经允许拒绝转载。 隐私限制 在处理或交换业务文件时&#xff0c;贸易伙伴可能需要某些隐私因素。 (1)交易数据的隐私性: 交易数据仅供交易双方阅读。 (2)交…

python xml模块学习

xml打开方式 # xml有两种打开方式 # 1. 打开文件&#xff0c;读取XML内容 str_xml open(xman.xml, r).read() print(str_xml)# 将字符串解析成xml特殊对象&#xff0c;root代指xml文件的根节点 root ET.XML(str_xml) # 读取字符串&#xff0c;将字符串转为Element对象 pri…

实例 - 购物车 (列表、循环)

salary int(input(Please input your money:))product [(iphone6s,5800),(mac bood,9000),(coffee,32),(python book,80),(bicyle,1500), ]shopping []while True:#打印商品内容n 1for i,v in product:print(n,.,i,v)n 1#引导用户选择商品choice input(选择购买商品编号:…

右滑手势导航返回的相关设置

iOS7之后提供了右滑返回上一级界面的手势&#xff0c;但是自定义返回按钮会失效&#xff0c;解决办法如下&#xff1a; -(void)viewWillAppear:(BOOL)animated{ [superviewWillAppear:animated]; if([self.navigationController respondsToSelector:selector(interacti…

区块链编程完全指南:平台、语言与结论

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自链客区块链技术问答社区&#xff0c;未经允许拒绝转载。 区块链&#xff0c;代表着未来的发展方向。是的&#xff0c;在文章开头&#xff0c;我们首先给出这样的结论。当然&#xff0c;认定未来将围…

基于QProbe创建基本Android图像处理框架

先来看一个GIF 这个GIF中有以下几个值得注意的地方这个界面是基本的主要界面所应该在的地方。其右下角有一个“”号&#xff0c;点击后&#xff0c;打开图像采集界面在这个界面最上面的地方&#xff0c;显示的是当前图像处理的状态。&#xff08;一般来说&#xff0c;是成功/不…

iOS三种拨打电话的方法

1&#xff0c;这种方法&#xff0c;拨打完电话回不到原来的应用&#xff0c;会停留在通讯录里&#xff0c;而且是直接拨打&#xff0c;不弹出提示NSMutableString* str[[ NSMutableStringalloc ] initWithFormat : "tel:%" , "xxxxxxxxxxx" ];[[UIApplica…

查询今天是周几?

<?php $wdate(w); $weekarray( "0">"星期日", "1">"星期一", "2">"星期二", "3">"星期三", "4">"星期四", "5">"星期五",…

区块链学习之-发布合约

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自链客区块链技术问答社区&#xff0c;未经允许拒绝转载。 命令行编译&#xff0c;发布合约1. 编译合约&#xff0c;编译不了curl --data ‘{“jsonrpc”:“2.0”,“method”: “eth_compileSolidi…

Codeforces 900D Unusual Sequences:记忆化搜索

题目链接&#xff1a;http://codeforces.com/problemset/problem/900/D 题意&#xff1a; 给定x,y&#xff0c;问你有多少个数列a满足gcd(a[i]) x 且 ∑(a[i]) y。 题解&#xff1a; 由于gcd(a[i]) x&#xff0c;所以y一定是x的倍数&#xff0c;否则无解。 那么原题就等价于…

对AFNetworking的简单封装

#import "YGLoadDataManager.h"#import "AFNetworking.h"implementation YGLoadDataManager#pragma mark -- GET请求 -- (void)getWithURLString:(NSString *)URLStringparameters:(id)parameterssuccess:(void (^)(id))successfailure:(void (^)(NSError …

js原型链prototype与__proto__以及new表达式

对象模型的细节 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Details_of_the_Object_Model转载于:https://www.cnblogs.com/imust2008/p/5621751.html

公有链和联盟链的本质不同

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自链客区块链技术问答社区&#xff0c;未经允许拒绝转载。 区块链是生命体、经济体。未来的区块链世界离不开自己的价值尺度建设 公有链和联盟链的本质不同 区块链受到大家广泛关注应该是2015年10月…

C++ 重载运算符简单举例

我们可以重定义或重载大部分 C 内置的运算符。这样&#xff0c;就能使用自定义类型的运算符。 重载的运算符是带有特殊名称的函数&#xff0c;函数名是由关键字 operator 和其后要重载的运算符符号构成的。与其他函数一样&#xff0c;重载运算符有一个返回类型和一个参数列表。…

ApacheBench(ab)使用详解

ab命令原理 Apache的ab命令模拟多线程并发请求&#xff0c;测试服务器负载压力&#xff0c;也可以测试nginx、lighthttp、IIS等其它Web服务器的压力。 ab命令对发出负载的计算机要求很低&#xff0c;既不会占用很多CPU&#xff0c;也不会占用太多的内存&#xff0c;但却会给目…

ios如何实现静音模式下声音仍然可以外放

AVAudioSession *audioSession [AVAudioSession sharedInstance]; [audioSession setCategory:AVAudioSessionCategoryPlayback error:nil];