bzoj 2111: [ZJOI2010]Perm 排列计数 (dp+卢卡斯定理)
bzoj 2111: [ZJOI2010]Perm 排列计数
1 ≤ N ≤ 10^6, P≤ 10^9
题意:求1~N的排列有多少种小根堆
1: #include<cstdio>
2: using namespace std;
3: const int N = 1e6+5;
4: typedef long long LL;
5: LL m, p, T, x, y, F[N];
6: LL n, size[N<<1];
7: LL f[N];
8: LL inv(LL t, LL p) {
9: return t == 1 ? 1 : (p - p / t) * inv(p % t, p) % p;
10: }
11: LL C(LL n, LL m){
12: if(n < m) return 0;
13: if(n < p && m < p)
14: return F[n] * 1ll * inv(F[n-m]%p, p) % p * inv(F[m]%p, p) % p;
15: return C(n/p, m/p) * C(n%p, m%p) %p;
16: }
17: int main(){
18: int i;
19: scanf("%d%lld", &n, &p);
20: F[0] = 1;
21: for(i = 1; i <= n&&i < p; i++) F[i] = F[i-1] * i %p;//阶乘预处理
22: for(i = n; i; i--) {
23: size[i] = size[i<<1] + size[i<<1|1] + 1;
24: f[i] = C(size[i]-1, size[i<<1])*((i<<1)>n?1:f[i<<1])%p*((i<<1|1)>n?1:f[i<<1|1])%p;
25: }
26: printf("%lld\n", f[1]);
27: }
bzoj 2111: [ZJOI2010]Perm 排列计数 (dp+卢卡斯定理)的更多相关文章
- BZOJ 2111: [ZJOI2010]Perm 排列计数 [Lucas定理]
2111: [ZJOI2010]Perm 排列计数 Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 1936 Solved: 477[Submit][ ...
- 【bzoj2111】[ZJOI2010]Perm 排列计数 dp+Lucas定理
题目描述 称一个1,2,...,N的排列P1,P2...,Pn是Mogic的,当且仅当2<=i<=N时,Pi>Pi/2. 计算1,2,...N的排列中有多少是Mogic的,答案可能很 ...
- BZOJ 2111 [ZJOI2010]Perm 排列计数:Tree dp + Lucas定理
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2111 题意: 给定n,p,问你有多少个1到n的排列P,对于任意整数i∈[2,n]满足P[i ...
- bzoj 2111 [ZJOI2010]Perm 排列计数(DP+lucas定理)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2111 [题意] 给定n,问1..n的排列中有多少个可以构成小根堆. [思路] 设f[i ...
- bzoj 2111: [ZJOI2010]Perm 排列计数【树形dp+lucas】
是我想复杂了 首先发现大于关系构成了一棵二叉树的结构,于是树形dp 设f[i]为i点的方案数,si[i]为i点的子树大小,递推式是\( f[i]=f[i*2]*f[i*2+1]*C_{si[i]-1} ...
- bzoj 2111: [ZJOI2010]Perm 排列计数 Lucas
题意:称一个1,2,...,N的排列P1,P2...,Pn是Magic的,当且仅当2<=i<=N时,Pi>Pi/2. 计算1,2,...N的排列中有多少是Magic的,答案可能很大, ...
- bzoj 2111: [ZJOI2010]Perm 排列计数
神题... 扒自某神犇题解: http://blog.csdn.net/aarongzk/article/details/50655471 #include<bits/stdc++.h> ...
- 2111: [ZJOI2010]Perm 排列计数
2111: [ZJOI2010]Perm 排列计数 链接 题意: 称一个1,2,...,N的排列$P_1,P_2...,P_n$是Magic的,当且仅当$2<=i<=N$时,$P_i> ...
- 【BZOJ】2111: [ZJOI2010]Perm 排列计数 计数DP+排列组合+lucas
[题目]BZOJ 2111 [题意]求有多少1~n的排列,满足\(A_i>A_{\frac{i}{2}}\),输出对p取模的结果.\(n \leq 10^6,p \leq 10^9\),p是素数 ...
随机推荐
- SQLite.dll在xp中部署时的报错处理
错误信息: System.IO.FileNotFoundException: Could not load file or assembly 'System.Data.SQLite.dll' or o ...
- 多线程FTP下载日志脚本
#!/bin/bash ip_list=`cat $1` thead_num=5tmp_fifofile="/tmp/$$.fifo"mkfifo "$tmp_fifof ...
- CMS gc随记
在查看CMS相关中文资料时,都提到了 并发预清理(Concurrent precleaning) 重新标记(STW remark) 目的是重新标记在并发标记阶段,由于对象状态的改变而标记遗漏的对象. ...
- input:checkbox 是否被选中?
<input type="checkbox" id="checkbox1"> <script> $(function(){ $(&quo ...
- C# wx获取token基本方法
#region 请求Url,不发送数据 /// <summary> /// 请求Url,不发送数据 /// </summary> public static string Re ...
- git config简写命令
在多人协作开发时,一般用git来进行代码管理.git有一些命令如:git pull . git push等等,这些命令可以设置alias,也就是缩写.如:git pull 是 git pl, git ...
- [javaEE] 三层架构案例-用户模块(一)
用户注册登录注销 Servlet+JSP+javaBean+dom4j 分层结构: com.tsh.web com.tsh.service com.tsh.dao com.tsh.domain com ...
- Error:Execution failed for task ':xutils:mergeDebugAndroidTestResources'. > No slave process to proc
Error:Execution failed for task ':xutils:mergeDebugAndroidTestResources'. > No slave process to p ...
- svn的使用总结
在网上看到了以前介绍非常全的svn的文章,拿来分享 原文网址 http://www.cnblogs.com/jx270/archive/2013/03/04/2943595.html 还有一篇更基础 ...
- 第3章 css属性color的RGBA值
颜色之RGBA RGB是一种色彩标准,是由红(R).绿(G).蓝(B)的变化以及相互叠加来得到各式各样的颜色.RGBA是在RGB的基础上增加了控制alpha透明度的参数. 语法: color:rgba ...