7.28 C幸运数字
|
问题描述
每个人都会有幸运数字,有种幸运数字是这样定义的:
如果 X 是幸运数字,则 X 在 m 进制下的表示为 x1x2...xk,一定有 x1<=x2<=...<=xk,其 中 k 可以表示 X 在 m 进制下的位数。
这样的数字可能有无穷多个的,但是如果是在 m 进制下位数不超过 n 的幸运数字,就 应该是有限个了,你能算出来吗?
这个答案可能很大,你只需要输出答案对一个数 p 取模的值即可。
输入格式
共一行,三个正整数 n、m 和 p,保证 p 是质数。
输出格式
共一行,表示答案对 p 取模的值。
样例输入 1
4 3 23
样例输出 1
15
样例输入 2
4 10 10000079
样例输出 2
715
提示
前 20%的数据满足 n <= 18, m <= 10。
前 40%的数据满足 n <= 100, m <= 100。
前 60%的数据满足 n <= 1000, m <= 1000。
100%的数据满足 n <= 107, m <= 107, n + m <= p, p <= 10000079。
样例说明
样例 1 的 15 种方案如下:
0000,0001,0011,0111,1111,0002,0022,0222,2222,0012,0122,1222,1112,1122,1222
分析: 这题有一个很显然的DP 考试的时候由于纠结B题太久 没有打前缀和优化 掉了40分
// #include<bits/stdc++.h> using namespace std; #define ll long long ll n,m,p; ll ksm(ll a,ll b,ll c) {ll ans=1;while(b){if(b&1) ans=ans%p*(a%p);b>>=1;a=(a*a)%c;}return ans%p; } ll c(int n,int m) {if(n<m) return 0;if(n==m) return 1;if(n-m<m) m=n-m;ll A=1,B=1;for(int i=0;i<m;i++){A=(A%p)*(n-i)%p;B=(B%p)*(m-i)%p;}return ksm(B,p-2,p)*A; }ll lucas(int n,int m,int p) {if(m==0) return 1;elsereturn lucas(n/p,m/p,p)%p*c(n%p,m%p)%p; } int main() { // freopen("lucknum.in","r",stdin); // freopen("lucknum.out","w",stdout);scanf("%lld%lld%lld",&n,&m,&p);printf("%lld",lucas(n+m-1,n,p)%p); }
转载于:https://www.cnblogs.com/OIEREDSION/p/11261907.html
7.28 C幸运数字相关推荐
- 牛客网 牛客练习赛13 C.幸运数字Ⅲ-思维
C.幸运数字Ⅲ 链接:https://www.nowcoder.com/acm/contest/70/C 来源:牛客网 这个题447和477是特殊的,其他的就没什么了. 代码: 1 #include& ...
- Bzoj4568: [Scoi2016]幸运数字
Bzoj4568: [Scoi2016]幸运数字 线性基+倍增+LCA 原来线性基还能这么考--一开始看到这个题以为是树上差分线性基,然而线性基不支持删除,所以就挂了. 后来想到倍增线性基,其实到这里 ...
- [BZOJ4568][SCOI2016]幸运数字(倍增LCA,点分治+线性基)
4568: [Scoi2016]幸运数字 Time Limit: 60 Sec Memory Limit: 256 MB Submit: 2131 Solved: 865 [Submit][Sta ...
- bzoj1853: [Scoi2010]幸运数字 dp+容斥原理
在中国,很多人都把6和8视为是幸运数字!lxhgww也这样认为,于是他定义自己的"幸运号码"是十进制表示中只包含数字6和8的那些号码,比如68,666,888都是"幸运号 ...
- lintcode1385. 幸运数字8
8是小九的幸运数字,小九想知道在1~n的数中有多少个数字含有8. 样例1输入: n = 20 输出: 2 解释: 只有8,18 含有8. 样例2输入: n = 100 输出: 19 解释: 有8,18 ...
- [SCOI2016]幸运数字
题目描述 A 国共有 n 座城市,这些城市由 n-1 条道路相连,使得任意两座城市可以互达,且路径唯一.每座城市都有一个幸运数字,以纪念碑的形式矗立在这座城市的正中心,作为城市的象征. 一些旅行者希望 ...
- [SCOI 2016]幸运数字
Description A 国共有 n 座城市,这些城市由 n-1 条道路相连,使得任意两座城市可以互达,且路径唯一.每座城市都有一个幸运数字,以纪念碑的形式矗立在这座城市的正中心,作为城市的象征.一 ...
- LintCode题目:幸运数字8
URL :https://www.lintcode.com/problem/lucky-number-eight/description 描述 8是小九的幸运数字,小九想知道在1~n的数中有多少个数字 ...
- 幸运数字8 - LintCode
描述 8是小九的幸运数字,小九想知道在1~n的数中有多少个数字含有8. 1 <= n <= 1000000 样例 给出 n = 20, 返回2. 解释: 只有8,18 含有8. 给出 n ...
最新文章
- Open Flash Chart组件的使用 及 与 jfreechart, FusionCharts 的比较
- 当量子计算和机器学习相遇,会碰撞出什么火花?
- Java版本多用户B2B2C商城源码-(八)消息总线(Spring Cloud Bus)
- 可重入锁ReentrantLock--转载
- Linux Red Hat 6.0 配置网卡ip地址和备用ip地址
- 训练吞吐量提升6倍!飞桨弹性计算推荐系统套件ElasticCTR1.0发布
- python深浅拷贝的底层理解_理解python中的深拷贝与浅拷贝
- .Net (C#)委托和事件(获取多个返回值)
- Redis(五):List集合数据类型详解
- 【批处理】通过bat文件执行python程序
- 监听滚动条和浏览器大小变化
- 王道计算机考研——计算机组成原理笔记
- OpenSesame免费提供新冠病毒防疫准备和远程工作培训
- 高斯-勒让德求积公式及Matlab实现
- 剪映+json解析将视频中的声音转换成文本
- 牛客网_java选择题
- 浅谈禁忌搜索(TabuSearch)
- 清华天才王垠受邀面试阿里P9,被阿里P10赵海平面跪,传言阿里P10赵海平被P11多隆判定3.25离职,整个事件回顾......
- Java实现AES工具类(包含CBC和ECB)
- 漂亮的许愿墙网站源码