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起始的回文串的 ...
随机推荐
- 【js】js截取字符串 +转化字符串为数字
js有两种方法可以截取字符串 substr(start , length ])和substring(start, end) parseInt('123') : 返回 123
- .Net 有关程序集查找与加载的一点反思
最近在做一款叫VICA产品,此产品采用了插件机制,插件在运行中加载,插件与插件之间存在依赖关系,所有的插件DLL为方便管理都放置在Plugins的文件夹下统一管理.这种处理方式不自觉的就让我想了解cl ...
- C,C++开源项目中的100个Bugs
俄罗斯OOO Program Verification Systems公司用自己的静态源码分析产品PVS-Studio对一些知名的C/C++开源项目,诸如Apache Http Server.Chro ...
- shadow 优化
http://gamedevs.org/uploads/rendering-in-battlefield3.pdf mark 当初看过 ======= sm有两阶段 1生成sm 2采样 第一阶段的优化 ...
- redis学习笔记——expire、pexpire、expireat、pexpireat的执行过程
这里主要讲的Redis是怎么样设置过期键的,可以算作后续"Redis过期键的删除策略"的前篇或者说预备知识. 在了解过期键问题前我们首先需要对redis的数据库和数据库键空间有一定 ...
- electron的安装
1.安装 node.js https://nodejs.org/en/ 2.安装asar npm install -g asar 3.安装atom https://atom.io/ 4.安装elect ...
- postgresql 如何导入sql文件
(1)不能使用pgadmin 执行Copy语句,目前客户端还不支持这种写法. (2)打开sql shell,执行如下操作 \i C:/Users/Peter_Youny/Desktop/ischool ...
- google 访问技术
空闲时间提供一些关于google访问的技术分享及技术支持. 不卖产品,请不要询问. 探讨技术请加群.
- Unity3D调用摄像头显示当前拍摄画面
原地址:http://blog.csdn.net/awnuxcvbn/article/details/18621265 using UnityEngine; using System.Collecti ...
- Win10系统Host文件修改不了权限不足怎么办
Win10系统Host文件修改不了权限不足怎么办 Win10系统Host文件修改不了不能保存 工具原料:电脑+win10 Win10系统Host文件修改不了权限不足方法步骤如下: .打开"运 ...