http://acm.hdu.edu.cn/showproblem.php?pid=3944

思路看https://blog.csdn.net/clover_hxy/article/details/55101759

这题逆元用的时候再算300+ms,如果提前全部预处理好,就3000+ms超时了。

还要注意开数组不要1w*1w,因为1w以内的素数只有1200+个,节省空间。

#include<bits/stdc++.h>
using namespace std;
#define ll long long
int n,m,p,Case;int idx[10000+100],prime[1500],fac[10000+100][1500],inv[10000+100][1500];
bool vis[10000+100];int pow_mod(int a,int n,int m)
{   if(!n)return 1;int x=pow_mod(a,n/2,m);ll ans=(ll)x*x%m;if(n&1)ans=ans*a%m;return (int)ans;
}void init()
{for(int i=2;i<=100;i++)if(!vis[i])for(int j=i*i;j<=10000;j+=i)vis[j]=1;int cnt=0;for(int i=2;i<=10000;i++)if(!vis[i])idx[i]=++cnt,prime[cnt]=i;for(int j=0;j<=cnt;j++)fac[0][j]=1;for(int i=1;i<=10000;i++)for(int j=1;j<=cnt;j++)fac[i][j]=fac[i-1][j]*i%prime[j];
//  for(int j=0;j<=cnt;j++)inv[0][j]=1;
//  for(int i=1;i<=10000;i++)for(int j=1;j<=cnt;j++)inv[i][j]=pow_mod(fac[i][j],prime[j]-2,prime[j]);
}
int Inv(int i,int j){return pow_mod(fac[i][j],prime[j]-2,prime[j]);}
int C(int n,int m)
{if(m>n)return 0;return fac[n][idx[p]]*Inv(m,idx[p])%p*Inv(n-m,idx[p])%p;
}int Lucas(int n,int m)
{if(m==0)return 1;return (long long)C(n%p,m%p)*Lucas(n/p,m/p)%p;
}int main()
{freopen("input.in","r",stdin);init();while(~scanf("%d%d%d",&n,&m,&p)){if(m<=n/2)printf("Case #%d: %d\n",++Case,(Lucas(n+1,m)+n-m)%p);else printf("Case #%d: %d\n",++Case,(Lucas(n+1,m+1)+m)%p);}return 0;
}

hdu3944 DP?相关推荐

  1. 暑假D16 T3 密道(数位DP? 打表找规律)

    题意 对于一个(n+1)*(n+1)的矩阵,第一列和第一排为1,其他位置为1当且仅当上方和左方有一个1,其他为0: 对于100%的数据,n<=1e9 题解 稍微画了一下,感觉从图像看不大出来,就 ...

  2. [css] 解释下什么是PPI和DP?

    [css] 解释下什么是PPI和DP? PPI(pixel per inch):像素密度,1英寸屏幕上显示的像素量.值越高,屏幕越细腻. DP(Density-independent pixel):安 ...

  3. 【NOIP2018】DAY2T2——填数游戏(轮廓线状压的dp?搜索打表)

    描述 小 D 特别喜欢玩游戏.这一天,他在玩一款填数游戏. 这个填数游戏的棋盘是一个n × m的矩形表格.玩家需要在表格的每个格子中填入一个数字(数字 0 或者数字 1),填数时需要满足一些限制. 下 ...

  4. 【BZOJ-2435】道路修建 (树形DP?)DFS

    2435: [Noi2011]道路修建 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 3115  Solved: 1002 [Submit][Sta ...

  5. #bzoj2240#积木游戏(DP? 贪心?)

    2240: 积木游戏 时间限制: 1 Sec  内存限制: 128 MB 题目描述 小时候我们都喜欢玩积木.这里的积木都是单位边长的正方体块,多个积木可以堆成一个"高木",&quo ...

  6. hdu-3944 DP?

    题意: 从杨辉三角的顶端走到所给定的位置,即相当于坐标(n,k),问到这儿的路径最小数字之和是多少.结果对p取模 (0<=k<=n<10^9) (p<10^4)    0. 知 ...

  7. [BZOJ3054] Rainbow的信号(考虑位运算 + DP?)

    传送门 BZOJ没数据范围... 其实数据范围是这样的.. 前20%可以直接n^3暴力枚举每个区间 前40%可以考虑每一位,因为所有数每一位都是独立的,而和的期望=期望的和,那么可以枚举每一位,再枚举 ...

  8. 牛客练习赛 57——manacher算法 树形dp?

    A - Tic-Tac-Toe 直接考虑每个人8种赢的情况即可. #define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0) #pragm ...

  9. 第八届蓝桥杯C/C++程序设计本科B组决赛 ——瓷砖样式(填空题)【DP?我的暴力排列搜索】...

    标题:磁砖样式 小明家的一面装饰墙原来是 3*10 的小方格. 现在手头有一批刚好能盖住2个小方格的长方形瓷砖. 瓷砖只有两种颜色:黄色和橙色. 小明想知道,对于这么简陋的原料,可以贴出多少种不同的花 ...

最新文章

  1. 基于libmad库的MP3解码简析
  2. POJ-1724 深搜剪枝
  3. 24、Cocos2dx 3.0游戏开发找小三之网格动作:高炫酷的3D动作
  4. vs2017创建外部css,webpack - 从生成的Microsoft SPA模板VS2017 webpack中删除特定供应商css - 堆栈内存溢出...
  5. PHP高级教程-高级过滤器
  6. 玩转html5(三)---智能表单(form),使排版更加方便
  7. PSR-4——新鲜出炉的PHP规范
  8. list转换为map
  9. 3.PHP核心技术与最佳实践 --- PHP网络技术及应用(cURL,socket,SMTP,WebService,Cookie,Session,localStorage)
  10. 雨林木风windows7旗舰版
  11. XP系统安装python
  12. [高项]定性风险分析VS定量风险分析
  13. word文档压缩图片
  14. oracle启动实例界面,oracle 11g 启动数据库实例
  15. yum故障之There are no enabled repos.
  16. swiper ie11版本兼容调整
  17. 解决虚拟机键盘不能使用,或能使用但会模糊错乱的问题
  18. mysql 截断多个表_如何从MySQL数据库中截断所有表?
  19. 若今生长剑浣花,生死无涯
  20. javaweb简化的医院管理系统

热门文章

  1. android控件向内弧度_描边/内间距/四个角不同弧度(包括圆角)
  2. linux的unbond服务无法启动,unbound和mail服务的部署和简单应用
  3. Caffe+Matlab配置
  4. 永洪科技咨询总监:AI助力企业深度洞察数据
  5. 【HTML 教程系列第 22 篇】 HTML 中的 input 标签,看这一篇就够了
  6. Something old,something new,something borrowed,something blue
  7. 随机投票小程序投票软件微信小程序微信小程序群投票投票评分小程序
  8. QUIC 协议初探 - iOS 实践
  9. 历届奥运会火炬接力基本情况
  10. ZED双目相机获取左右视图代码