hdu 3304 Interesting Yang Yui Triangle
hdu 3304 Interesting Yang Yui Triangle
题意:
给出P,N,问第N行的斐波那契数模P不等于0的有多少个?
限制:
P < 1000,N <= 10^9
思路:
lucas定理。
假设:
n = a[k]*p^k + a[k-1]*p^(k-1) + ... + a[1]*p + a[0]
m = b[k]*p^k + b[k-1]*p^(k-1) + ... + b[1]*p + b[0]
则:
C(n,m) = pe(i=0~k,C(a[i],b[i]))%p 当中pe表示连乘符号。
因为n已经确定,所以a[i] (0 <= i <= k)已经确定。所以我们仅仅须要找出每一个a[i]有多少种b[i]。使得C(a[i],b[i])%P!=0,暴力一遍就能够了。
/*hdu 3304 Interesting Yang Yui Triangle
题意:
给出P,N,问第N行的斐波那契数模P不等于0的有多少个?
限制:
P < 1000,N <= 10^9
思路:
lucas定理。
假设:
n = a[k]*p^k + a[k-1]*p^(k-1) + ... + a[1]*p + a[0]
m = b[k]*p^k + b[k-1]*p^(k-1) + ... + b[1]*p + b[0]
则:
C(n,m) = pe(i=0~k,C(a[i],b[i]))%p 当中pe表示连乘符号。 因为n已经确定,所以a[i] (0 <= i <= k)已经确定,所以我们仅仅须要找出每一个a[i]有多少种b[i],使得C(a[i],b[i])%P!=0,暴力一遍就能够了。
*/
#include<iostream>
#include<cstdio>
using namespace std;
#define LL long long
const int MOD=10000;
const int N=105;
int a[N];
int cnt=0;
int ny[N];
LL inv(LL a,LL m){
LL p=1,q=0,b=m,c,d;
while(b>0){
c=a/b;
d=a; a=b; b=d%b;
d=p; p=q; q=d-c*q;
}
return p<0? p+m:p;
} void predo(int p){
ny[0]=1;
for(int i=1;i<p;++i){
ny[i]=inv(i,p);
}
}
LL deal(int x,int p){
LL ret=0;
LL cur=1%p;
if(cur) ++ret;
for(int i=1;i<=x;++i){
cur=cur*ny[i]%p*(x-i+1)%p;
if(cur) ++ret;
}
return ret;
}
void gao(int p, int n){
cnt=0;
while(n){
a[cnt++]=n%p;
n/=p;
}
LL ans=1;
for(int i=0;i<cnt;++i){
ans=ans*deal(a[i],p)%MOD;
}
printf("%04lld\n",ans);
}
int main(){
int p, n;
int cas=0;
while(scanf("%d%d", &p, &n) && (p||n)){
predo(p);
printf("Case %d: ",++cas);
gao(p, n);
}
return 0;
}
hdu 3304 Interesting Yang Yui Triangle的更多相关文章
- HDU 3304 Interesting Yang Yui Triangle lucas定理
输入p n 求杨辉三角的第n+1行不能被p整除的数有多少个 Lucas定理: A.B是非负整数,p是质数.AB写成p进制:A=a[n]a[n-1]...a[0],B=b[n]b[n-1]...b[0] ...
- Interesting Yang Yui Triangle(hdu3304)
Interesting Yang Yui Triangle Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ...
- UVALive - 3700 Interesting Yang Hui Triangle
题目大意就是求一下 杨辉三角的第N行中不能被P整除的有多少个. 直接卢卡斯定理一下就行啦. #include<bits/stdc++.h> #define ll long long usi ...
- hdu 2426 Interesting Housing Problem 最大权匹配KM算法
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2426 For any school, it is hard to find a feasible ac ...
- HDU 2426 Interesting Housing Problem(二分图最佳匹配)
http://acm.hdu.edu.cn/showproblem.php?pid=2426 题意:每n个学生和m个房间,现在要为每个学生安排一个房间居住,每个学生对于一些房间有一些满意度,如果满意度 ...
- HDU 多校对抗赛 C Triangle Partition
Triangle Partition Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 132768/132768 K (Java/Oth ...
- hdu 2814 Interesting Fibonacci
pid=2814">点击此处就可以传送 hdu 2814 题目大意:就是给你两个函数,一个是F(n) = F(n-1) + F(n-2), F(0) = 0, F(1) = 1; 还有 ...
- HDU 6222 Heron and His Triangle (pell 方程)
题面(本人翻译) A triangle is a Heron's triangle if it satisfies that the side lengths of it are consecutiv ...
- HDU 5785 Interesting
题目: 大概说给一个字符串,找到其所有子串[i...k]满足它是由两个回文串拼成的,求Σi*k. 分析: 用val[1][i]表示以i结尾的回文串的起始位置的和val[0][i]表示以i起始的回文串的 ...
随机推荐
- TJSONTableObject跨平台解析JSON
TJSONTableObject跨平台解析JSON USES SynCrossPlatformJSON TSQLRecordPeoplePersistent = class(TPersistent) ...
- easyui 后台系统引入富文本编辑器的使用
1.首先,想在项目中引入相关的jar包 2.html页面中加入相关的引用 <!-- kindeditor --> <script type="text/javascript ...
- python的lxml解析器
from lxml import etree import codecs import sys from lxml import etree def parser(p): tree = etree.H ...
- [转]How to solve SSIS error code 0xC020801C/0xC004700C/0xC0047017
本文转自:http://www.codeproject.com/Articles/534651/HowplustoplussolveplusSSISpluserrorpluscodeplus0xC B ...
- centos7 yum安装redis(转)
正如我们所知的那样,Redis是一个开源的.基于BSD许可证的,基于内存的.键值存储NoSQL数据库.Redis经常被视为一个数据结构服务器,因为Redis支持字符串strings.哈希hashes. ...
- django admin后台接入tinymce并且支持图片上传
首先:下载tinymce 地址是https://www.tinymce.com/ 点击download 下载社区版本即可 接着:把压缩包内tinymce目录内的所有文件和文件夹复制到Django项目中 ...
- git 批量删除文件夹和文件
git 批量删除文件夹和文件 硬盘删除文件后,执行$ git status 会提示你仍然需要$ git rm <文件> 此时如果是要删除大批量文件,这么一个一个命令下去不得累死人啊 ...
- linux 设置 亮度
调整系统运行的配置文件位于 /sys/class/ 文件夹下. 调整亮度在 /sys/class/backlight/XXXX/brightness XXXX 是因为使用的驱动不一样,名称就会不一样, ...
- 倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-如何修改某个轴的数值单位
在某个轴上双击,切换到Settings,然后可以再Unit中修改为角度,弧度,mm 更多教学视频和资料下载,欢迎关注以下信息: 我的优酷空间: http://i.youku.com/aceta ...
- tornado zbar 二维码识别 ,配合nginx 反向代理,supervisord 监控
tornado zbar 二维码识别 ,配合nginx 反向代理,supervisord 监控 1.zbar识别二维码程序,python2.6.6 #!/usr/bin/env python # co ...