[BJWC2008] Gate Of Babylon
容斥+隔板法+Lucas定理
#include <bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int n,m,t,mod,ans;
int fc[N],fv[N],b[15];
int lucas(int n,int m) {
if(m<0||m>n) return 0;
if(n<mod&&m<mod) return 1LL*fc[n]*fv[m]*fv[n-m]%mod;
return 1LL*lucas(n/mod,m/mod)*lucas(n%mod,m%mod)%mod;
}
void dfs(int x,int sum,int cnt) {
if(sum>m) return;
if(x>t) {
if(cnt&1) ans=(ans-lucas(m-sum+n,n)+mod)%mod;
else ans=(ans+lucas(m-sum+n,n))%mod;
return;
}
dfs(x+1,sum+b[x]+1,cnt+1);
dfs(x+1,sum,cnt);
}
int main() {
scanf("%d%d%d%d",&n,&t,&m,&mod);
fc[0]=fc[1]=fv[0]=fv[1]=1;
for(int i=2; i<mod; ++i) fv[i]=1LL*fv[mod%i]*(mod-mod/i)%mod;
for(int i=2; i<mod; ++i) fv[i]=1LL*fv[i-1]*fv[i]%mod,fc[i]=1LL*fc[i-1]*i%mod;
for(int i=1; i<=t; ++i) scanf("%lld",b+i);
dfs(1,0,0); printf("%lld\n",ans);
return 0;
}
[BJWC2008] Gate Of Babylon的更多相关文章
- Gate Of Babylon bzoj 1272
Gate Of Babylon (1s 128MB) babylon [问题描述] [输入格式] [输出格式] [样例输入] 2 1 10 13 3 [样例输出] 12 [样例说明] [数据范围] 题 ...
- 【BZOJ】【1272】【BeiJingWC2008】Gate of Babylon
组合数学+容斥原理 Orz zyf-zyf 多重集组合数0.0还带个数限制? ——> <组合数学>第6章 6.2带重复的组合 组合数还要模P 0.0? ——> Lucas ...
- BZOJ1272: [BeiJingWc2008]Gate Of Babylon
题解: 多重集合的组合数?还是0-m?有些元素有个数限制? 多重集合的组合数可以插板法,0-m直接利用组合数的公式一遍求出来,个数限制注意到只有15个,那我们就暴力容斥了 AC了真舒畅.. 注意开lo ...
- 【BZOJ 1272】 1272: [BeiJingWc2008]Gate Of Babylon (容斥原理+卢卡斯定理)
1272: [BeiJingWc2008]Gate Of Babylon Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 254 Solved: 12 ...
- 【BZOJ1272】Gate Of Babylon [Lucas][组合数][逆元]
Gate Of Babylon Time Limit: 10 Sec Memory Limit: 162 MB[Submit][Status][Discuss] Description Input ...
- bzoj1272 Gate Of Babylon(计数方法+Lucas定理+乘法逆元)
Description Input Output Sample Input 2 1 10 13 3 Sample Output 12 Source 看到t很小,想到用容斥原理,推一下发现n种数中选m个 ...
- bzoj1272 Gate Of Babylon
[问题描述] [输入格式] [输出格式] [样例输入] 2 1 10 13 3 [样例输出] 12 [样例说明] [数据范围] 先容斥,考虑枚举哪些条件强制不满足,即直接选出b[i]+1件宝具 假设强 ...
- bzoj 1272: [BeiJingWc2008]Gate Of Babylon
Description Solution 如果没有限制,答案就是 \(\sum_{i=0}^{m}C(n+i-1,i)\) 表示枚举每一次取的个数,且不超过 \(m\),方案数为可重组合 发现这个东西 ...
- ●BZOJ 1272 [BeiJingWc2008]Gate Of Babylon
题链: http://www.lydsy.com/JudgeOnline/problem.php?id=1272 题解: 容斥,Lucas定理本题的容斥考虑类似 [BZOJ 1042 [HAOI200 ...
随机推荐
- 11、LineEdit与setCompleter自动补全
#include "mainwindow.h" #include "ui_mainwindow.h" #include <QDebug>//引入打印 ...
- GooFlow
目前的下载网址:基于JQUERY的WEB在线流程图设计器GOOFLOW 0.7版
- WebView内置方案主要是通过重写WebChromeClient 来实现的,如下面的代码所示。
基本思想也很简单:通过WebChromeClient的方法以startActivityForResult的方式打开系统的文件选择器,选择文件后在onActivityResult中将结果回传给Webvi ...
- 学习曲线(learning curves)
假定假设函数为一个二次函数,只是参数未定: 每给定一个样本大小,就能训练出对应的假设函数,从而利用这个假设函数可以计算出Jtrain(仍然在之前拿来训练的那些样本里面),然后将训练好的假设函数用在全部 ...
- note:开源许可证之间的区别
最近接触开源项目比较多,关注一下许可证的问题. 饱受诟病的病毒式copyleft就是GPL了.. ref:http://code.csdn.net/news/2819582 ref:http://ww ...
- 如何保存 Activity 的状态?
Activity 的状态通常情况下系统会自动保存的,只有当我们需要保存额外的数据时才需要使用到这样的功能.一般来说, 调用 onPause()和 onStop()方法后的 activity 实例仍然存 ...
- web基础知识汇总
HTML&XML 1.JavaWeb的概述 A: 什么是Web----->就是网页或者网站 B: 什么是JavaWeb----->就是使用java语言做web C: 浏览器访问网站 ...
- [flask]分页显示列表
添加分页支持的视图函数 app.py @app.route('/search') def search(): page = request.args.get('page', 1, type=int) ...
- ControlTemplate in WPF —— RadioButton
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" x ...
- 【SSM】---Spring+SpringMVC+Mybatis框架整合
参考 百度经验 https://jingyan.baidu.com/article/2a1383288a85a9074a134f1b.html CSDN http://blog.csdn.net/ge ...