hdu 3944 DP? (Lucas 定理)

仔细观察杨辉三角后可以发现从最高点到第n行第k个数的最短路为c(n+1,k);

根据Lucas定理可以求出,一般来说要求答案模去一个质数p且p的范围不大于10^5则可用Lucas.

Lucas(n,m,p)=cm(n%p,m%p)* Lucas(n/p,m/p,p)
Lucas(x,0,p)=1;
另外注意当k>n/2时,必须令k=n-k。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
const int maxn=10005;
int n,k,p;
int frc[1300][maxn];
int id[maxn];
bool vis[maxn];
int prim[maxn];
int cnt;
void init(){for(int i=2;i<maxn;i++)if(!vis[i]){prim[cnt]=i;id[i]=cnt;for(int j=i*2;j<maxn;j+=i)vis[j]=1;p=i;frc[cnt][0]=1;for(int j=1;j<p;j++)frc[cnt][j]=frc[cnt][j-1]*j%p;cnt++;}
}
int POW(int x,int n,int p){int res=1;while(n){if(n&1)res=res*x%p;x=x*x%p;n>>=1;}return res;
}
int cm(int n,int m,int p){if(m>n)return 0;int x=id[p];int ans=frc[x][n]*POW(frc[x][n-m]*frc[x][m]%p,p-2,p)%p;return ans;
}
int lucas(int n,int m,int p){if(m==0)return 1;int ans=cm(n%p,m%p,p)*lucas(n/p,m/p,p)%p;return ans;
}
int main()
{
//    freopen("in","r",stdin);
    init();int cas=1;while(scanf("%d%d%d",&n,&k,&p)>0){if(k>n/2)k=n-k;int ans=lucas(n+1,k,p)+n-k;printf("Case #%d: %d\n",cas++,ans%p);}return 0;
}

 

转载于:https://www.cnblogs.com/wshh/p/3987407.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/492892.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

常用的编码

ASCII码是标准化字符集&#xff0c;使用7个二进制位编码&#xff0c;可以表示128个字符&#xff0c;通常ASCII表示的是英文字母的二进制编码&#xff0c; 例如大写字母A的二进制编码为65&#xff0c;python代码如下&#xff1a; >>> ord(A) 65 >>> chr(65) …

这是一份 AI 界最强年终总结

来源&#xff1a;AI 科技评论圣诞节元旦假期过后&#xff0c;谷歌资深 Fellow、谷歌 AI 负责人 Jeff Dean 代表所有谷歌的研究部门发出了他们的 2018 年度科研研究年终总结。这一年&#xff0c;谷歌的科研人员们在人工智能、量子计算、计算图形学、算法理论、软件系统、TPU、开…

选择、插入、冒泡排序

选择、插入、冒泡三种算是最典型的排序算法了&#xff0c;空间复杂度都为O(1) 选择排序时间复杂度跟初始数据顺序无关&#xff0c;O(n2)&#xff0c;而且还不稳定; 插入排序时间复杂度跟初始数据顺序有关最好O(n),最坏O(n2)&#xff0c;稳定 冒泡排序时间复杂度跟初始数据顺序有…

89页PPT揭秘:人工智能产业爆发的拐点

来源&#xff1a;wpr摘要&#xff1a;如今&#xff0c;人工智能正在以前所未有的速度发展。目前&#xff0c;全球顶尖的IT和互联网公司都加大了对人工智能领域的投入&#xff0c;包括Google、Facebook、微软投入巨大&#xff0c;人工智能进入爆发式增长的拐点。这份关于人工智能…

Linux下如何进行FTP设置

1. 先用rpm -qa| grep vsftpd命令检查是否已经安装&#xff0c;如果ftp没有安装&#xff0c;使用yum -y install vsftpd 安装,(ubuntu 下使用apt-get install vsftpd) 2. service vsftpd start 启动要让FTP每次开机自动启动&#xff0c;运行命令: chkconfig --level 35 vsft…

Python文件拷贝函数

test.txt文件内容如下&#xff1a; one two three four five 代码的功能为把test.txt内容拷贝到copy.txt文件中代码如下&#xff1a; def main():infile open("test.txt", "r")outfile open("copy.txt", "w")countLines countChars…

source insight常用命令--实际使用中比较常用的

以下命令指示个人在实际的使用中比较常用到的相关命令&#xff0c;仅供参考&#xff0c;谢谢合作 ctrlf&#xff1a;搜索关键字 F3&#xff1a;在当前打开的文本中&#xff0c;向上搜索关键字 F4&#xff1a;在当前打开的文本中&#xff0c;向下搜索关键字 ctrlo&#xff1a;快…

医疗健康大数据:应用实例与系统分析

来源&#xff1a;网络大数据1 、概述随着信息技术和物联网技术的发展、个人电脑和智能手机的普及以及社交网络的兴起&#xff0c;人类活动产生的数据正以惊人的速度增长。根据国际数据公司(International DataCorporation&#xff0c;IDC)的报告&#xff0c;仅2011年&#xff0…

RANSAC算法的简单理解

图像拼接中看到了特征匹配的部分&#xff0c;特征匹配主要是特征点的匹配。在特征点匹配的时候&#xff0c;首先进行粗匹配&#xff0c;粗匹配通常是进行一对匹配点进行对比&#xff0c;误差越小越可能是一对匹配点&#xff1b;精匹配方法中&#xff0c;我们可以用到RANSAC(Ran…

IEEE论文:城市大脑,基于互联网大脑模型的智慧城市建设

作者&#xff1a;刘锋 互联网进化论作者 计算机博士前言&#xff1a;基于互联网大脑模型与智慧城市建设的结合&#xff0c;2015年2月在csdn第一次发布文章《基于互联网大脑架构的智慧城市建设探讨》提出了城市大脑的建设方向&#xff0c;地址&#xff1a;https://blog.csdn.net…

vb6 枚举对象属性

Option Explicit引用Library TLIC:\WINDOWS\system32\TLBINF32.DLLTypeLib InformationPrivate Sub Form_Load()Dim oTLB As InterfaceInfo, I As LongSet oTLB TLI.InterfaceInfoFromObject(Me)Debug.Print oTLB.NameFor I 1 To oTLB.Members.CountSelect Case oTLB.Members…

Python利用turtle绘制五角星

绘制用到的参数我们存放在data.txt文件中&#xff0c;data.txt文件内容如下&#xff1a; 300,0,144,1,0,0 300,0,144,0,1,0 300,0,144,0,0,1 300,0,144,1,1,0 300,0,108,0,1,1 184,0,72,1,0,1 184,0,72,0,0,0 184,0,72,0,0,0 184,0,72,0,0,0Python代码如下&#xff1a; # data.…

关于c#静态构造函数

http://baike.baidu.com/view/2634573.htm?fraladdin 在百科上看到C#的新特性静态构造函数&#xff0c;其中提到静态构造函数“不能继承” 今天做了个试验&#xff0c;发现实际上静态构造函数是可以继承的&#xff0c;代码如下&#xff1a; using System; using System.Collec…

Python语言数据类型-----数字和字符串

Python语言的数字类型 整数类型 浮点数类型 复数类型 整数类型与数学中的整数类型概念一致&#xff0c;没有取值范围。 十进制数为 1010,99,-217 十六进制为 0x9a, -0x89 (0x,0X开头表示16进制数) 二进制为 0b010, -0B101(0b,0B开头的表示二进制数) 八进制为 0o123, -0O456(…

深度观察|工业物联网的应用场景和市场潜力

来源&#xff1a;readwrite编译&#xff1a;郭仁贤从人力资源到数字技术&#xff0c;物联网&#xff08;IoT&#xff09;改变了我们与周围世界互动的方式。在每一次的挑战和新的风险中&#xff0c;我们生活中最个人化的领域也迎来了新的机遇。物联网数字产业真正颠覆的是农业、…

scrapy 工作流程

Scrapy的整个数据处理流程由Scrapy引擎进行控制&#xff0c;其主要的运行方式为&#xff1a; 引擎打开一个域名&#xff0c;蜘蛛处理这个域名&#xff0c;然后获取第一个待爬取的URL。引擎从蜘蛛那获取第一个需要爬取的URL&#xff0c;然后作为请求在调度中进行调度。引擎从调度…

Python数据类型-----列表

Python中列表类型 列表是有序的元素集合。 列表中的元素可以通过索引进行访问列表中的每个元素类型可以是不一样的列表的大小没有限制&#xff0c;随时可以修改 列表的操作 序列操作符操纵符含义< seq >< seq >连接两个序列< seq >*<整数类型>对序…

观五官知罕见病,AI“望诊”靠谱吗

新型人脸识别软件可助力罕见病诊断来源&#xff1a;中国科学报将人工智能&#xff08;AI&#xff09;用于医疗辅助诊断早已经不是什么新鲜事&#xff0c;仅AI医学影像辅助诊疗一项就有非常多的应用场景。然而&#xff0c;近日来自美国波士顿一家名为FDNA的数字医疗公司的研究人…

Python数据类型-元组类型

Python的元组类型 tuple 元组特点 元组中的元素可以是不同类型元组中的各个元素存在先后关系&#xff0c;可以通过索引访问元组中元素元组定义后内部的元素不能更改&#xff0c;也不能删除&#xff0c;但是可以给元组添加元素与字符串类型类似&#xff0c;可以通过索引区间来…

持续集成:CruiseControl.NET + VisualSVN.Server

刚换了工作&#xff0c;有需要搭建一套持续集成的平台&#xff0c;做一下总结。 首先是我用到的工具&#xff1a; 上面缺少了Microsoft Fxcop&#xff0c;可以用来做代码校验&#xff0c;不过实际情况暂时还没有用到。主要的需求目前是&#xff0c;使用已发布的稳定版本代码作为…