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的更多相关文章

  1. 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] ...

  2. Interesting Yang Yui Triangle(hdu3304)

    Interesting Yang Yui Triangle Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K ...

  3. UVALive - 3700 Interesting Yang Hui Triangle

    题目大意就是求一下 杨辉三角的第N行中不能被P整除的有多少个. 直接卢卡斯定理一下就行啦. #include<bits/stdc++.h> #define ll long long usi ...

  4. 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 ...

  5. HDU 2426 Interesting Housing Problem(二分图最佳匹配)

    http://acm.hdu.edu.cn/showproblem.php?pid=2426 题意:每n个学生和m个房间,现在要为每个学生安排一个房间居住,每个学生对于一些房间有一些满意度,如果满意度 ...

  6. HDU 多校对抗赛 C Triangle Partition

    Triangle Partition Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 132768/132768 K (Java/Oth ...

  7. hdu 2814 Interesting Fibonacci

    pid=2814">点击此处就可以传送 hdu 2814 题目大意:就是给你两个函数,一个是F(n) = F(n-1) + F(n-2), F(0) = 0, F(1) = 1; 还有 ...

  8. 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 ...

  9. HDU 5785 Interesting

    题目: 大概说给一个字符串,找到其所有子串[i...k]满足它是由两个回文串拼成的,求Σi*k. 分析: 用val[1][i]表示以i结尾的回文串的起始位置的和val[0][i]表示以i起始的回文串的 ...

随机推荐

  1. 小程序把图片转换成base64

    1.首先需要到upng.js,然后upng.js需要pako.js,先一并下载了 2.然后就可以直接用了,具体代码如下: <!--pages/base/base.wxml--> <c ...

  2. 转-"进程android.process.acore已意外停止" 解决办法

    运行手机虚拟机时,老是弹出这样的“android.process.acore“服务已意外停止,虽不影响正常使用,但终究影响心情.网上找的方案,按如下步骤操作,可以解决问题: 出现这个提示不用担心,并不 ...

  3. iOS:对GCD中 同步、异步、并行、串行的见解

    1.GCD-同步执行多线程时          GCD中不管向什么类型的队列加同步任务,实际上都会加到当前线程中(一般为主线程). 2.GCD-异步执行多线程时          GCD中不管向什么类 ...

  4. sftp子系统申请已拒绝 请确保ssh连接的sftp子系统设置有效

    一.sftp子系统申请已拒绝,请确保ssh连接的sftp子系统设置有效 1.修改配置文件 [root@nulige ~]# vi /etc/ssh/sshd_config # override def ...

  5. ab并发负载压力测试

    一.ab 0.安装ab压力测试软件 [root@a2 conf]# yum install httpd-tools -y #查看版本 [root@a2 conf]# ab -V This is Apa ...

  6. [置顶] struts2+hibernate+spring整合(annotation版)

    本博文使用struts2,hibernate,spring技术整合Web项目,同时分层封装代码,包含model层,DAO层,Service层,Action层. 在整合hibernate时使用annot ...

  7. JAVA简单选择排序算法原理及实现

    简单选择排序:(选出最小值,放在第一位,然后第一位向后推移,如此循环)第一位与后面每一个逐个比较,每次都使最小的置顶,第一位向后推进(即刚选定的第一位是最小值,不再参与比较,比较次数减1) 复杂度: ...

  8. 【ACM】How many prime numbers

    http://acm.hdu.edu.cn/game/entry/problem/show.php?chapterid=2&sectionid=1&problemid=2 #inclu ...

  9. 虚拟机VMware12.0安装centos 6.5+VMware中虚拟机网络模式区分

    之前的步骤一路next,有设置内存大小的根据机器的配置设置一下即可. 需要注意的地方, 下面是对于简化版进行设置的步骤 虚拟机网络模式 1.桥接模式 在桥接模式下,VMware虚拟机里的系统就像是 局 ...

  10. 算法笔记_090:蓝桥杯练习 7-1用宏求球的体积(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 问题描述 使用宏实现计算球体体积的功能.用户输入半径,系统输出体积.不能使用函数,pi=3.1415926,结果精确到小数点后五位. 样例输入 一个 ...