loj2143 「SHOI2017」组合数问题
大傻逼题……就是求 \(nk\) 个元素选出一些元素,选出的元素的个数要满足模 \(k\) 余 \(r\),求方案数。
想到 \(\binom{n}{m}=\binom{n-1}{m-1}+\binom{n-1}{m}\),递推取模就是了……
#include <iostream>
#include <cstdio>
using namespace std;
typedef long long ll;
int n, p, k, r;
struct Matrix{
int num[55][55];
Matrix operator*(const Matrix &x)const{
Matrix re;
for(int i=0; i<k; i++)
for(int j=0; j<k; j++){
re.num[i][j] = 0;
for(int l=0; l<k; l++)
re.num[i][j] = (re.num[i][j] + (ll)num[i][l]*x.num[l][j]) % p;
}
return re;
}
}dan, zhu, yua;
Matrix ksm(ll b){
while(b){
if(b&1) dan = dan * zhu;
zhu = zhu * zhu;
b >>= 1;
}
return dan;
}
int main(){
cin>>n>>p>>k>>r;
for(int i=0; i<k; i++){
dan.num[i][i] = zhu.num[i][i] = 1;
zhu.num[(i-1+k)%k][i]++;
}
yua.num[0][0] = 1;
cout<<(yua*ksm((ll)n*k)).num[0][r]<<endl;
return 0;
}
loj2143 「SHOI2017」组合数问题的更多相关文章
- loj #2143. 「SHOI2017」组合数问题
#2143. 「SHOI2017」组合数问题 题目描述 组合数 Cnm\mathrm{C}_n^mCnm 表示的是从 nnn 个互不相同的物品中选出 mmm 个物品的方案数.举个例子, 从 ...
- LOJ2557. 「CTSC2018」组合数问题
LOJ2557. 「CTSC2018」组合数问题 这道题是我第一道自己做完的题答题.考场上面我只拿了41分,完全没有经验.现在才发现其实掌握了大概的思路还是不难. 首先模拟退火,通过了1,2,6,9, ...
- 【LOJ 2145】「SHOI2017」分手是祝愿
LOJ 2145 100pts 这题...BT啊 首先我们很容易想出\(dp(msk)\)表示现在灯开关的情况是\(msk\),期望通过多少步走到终结态. 很明显\(dp(msk)=\frac{1}{ ...
- 【LOJ 2144】「SHOI2017」摧毁「树状图」
LOJ 2144 84pts 首先\(op2\)很简单.直接并查集一搞就好了(话说我现在什么东西都要写个并查集有点...) 然后\(op0\)我不会,就直接\(O(n^2)\)枚举一下\(P\)这个人 ...
- LOJ #2142. 「SHOI2017」相逢是问候(欧拉函数 + 线段树)
题意 给出一个长度为 \(n\) 的序列 \(\{a_i\}\) 以及一个数 \(p\) ,现在有 \(m\) 次操作,每次操作将 \([l, r]\) 区间内的 \(a_i\) 变成 \(c^{a_ ...
- LOJ #2145. 「SHOI2017」分手是祝愿
题目链接 LOJ #2145 题解 一道画风正常的--期望DP? 首先考虑如何以最小步数熄灭所有灯:贪心地从大到小枚举灯,如果它亮着则修改它.可以求出总的最小步数,设为\(cnt\). 然后开始期望D ...
- LOJ #2141. 「SHOI2017」期末考试
题目链接 LOJ #2141 题解 据说这道题可以三分(甚至二分)? 反正我是枚举的 = = 先将t和b数组排序后计算出前缀和, 然后枚举最晚的出成绩时间,每次可以O(1)直接计算调整到该时间所需的代 ...
- loj2145 「SHOI2017」分手是祝愿
记 \(f_i\) 是从要做 \(i\) 步好操作变成要做 \(i-1\) 步好操作的期望操作次数. 显然 \(f_i=i/n \times 1 + (1-i/n) \times (1 + f_{i+ ...
- loj2141 「SHOI2017」期末考试
我们枚举每一个时间点,使得所有科目的时间都小于等于这个时间点,计算安排老师的代价和学生们的不满意度更新答案. 但是枚举太慢了,可以发现,时间点越早,学生们不满意度越小,安排老师的代价越高.即安排老师的 ...
随机推荐
- 【转】HashMap 和 HashTable 到底哪不同 ?
2017/05/29 | 分类: 基础技术 | 2 条评论 | 标签: HASHMAP, HASHTABLE 分享到: 原文出处: 程序员赵鑫 HashMap和HashTable有什么不同?在面试和被 ...
- two.js基本操作
今天介绍一个网络上并不常用的插件two.js,two.js是一款网页二维绘图软件,可以在指定区域内产生自设的各种动画效果 下载网址如下: https://two.js.org/#download 一: ...
- jQuery选择器之样式二
prop()方法和attr()类似,但是HTML5规定有一种属性在DOM节点中可以没有值,只有出现与不出现两种,例如: <input id="test-radio" type ...
- arcgis jsapi接口入门系列(4):用代码在地图画点线面
PS:用代码画点这样写是为了跟后面的用鼠标画点线面区分出来 画点 drawPointGraphic: function () { //点有多种样式:一般的点,显示文字,显示图片 //一般的点 let ...
- JBOSS默认连接池配置
jboss5.0mysql连接配置 <?xml version="1.0" encoding="UTF-8"?> <!-- The Hyper ...
- PostgreSQL 的日期函数用法举例
最近偶有开发同事咨询 PostgreSQL 日期函数,对日期处理不太熟悉,今天详细看了下手册的日期函数,整理如下,供参考. 一 取当前日期的函数 --取当前时间skytf=> select no ...
- COGS 1913. AC自动机
★★ 输入文件:ACautomata.in 输出文件:ACautomata.out 简单对比时间限制:1 s 内存限制:128 MB [题目描述] 对,这就是裸的AC自动机. 要求:在 ...
- codevs 1606 台阶
时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 话说某牛家门外有一台阶,这台阶可能会很高(总层数<=1000000). 这 ...
- WebStorm 配置less
1.打开Webstorm的Setting 搜索,watch 找到 File watch,点击右侧加号添加Less. 2.配置, working directory. Output paths
- div+css实现几种经典布局的详解
一.左右两侧,左侧固定宽度200px,右侧自适应占满 <div class="divBox"> <div class="left">&l ...