HDU 2855解题报告
来源:互联网 发布:淘宝收不到自己的店铺 编辑:程序博客网 时间:2024/06/06 16:38
Fibonacci Check-up
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1198 Accepted Submission(s): 675
Problem Description
Every ALPC has his own alpc-number just like alpc12, alpc55, alpc62 etc.
As more and more fresh man join us. How to number them? And how to avoid their alpc-number conflicted?
Of course, we can number them one by one, but that’s too bored! So ALPCs use another method called Fibonacci Check-up in spite of collision.
First you should multiply all digit of your studying number to get a number n (maybe huge).
Then use Fibonacci Check-up!
Fibonacci sequence is well-known to everyone. People define Fibonacci sequence as follows: F(0) = 0, F(1) = 1. F(n) = F(n-1) + F(n-2), n>=2. It’s easy for us to calculate F(n) mod m.
But in this method we make the problem has more challenge. We calculate the formula , is the combination number. The answer mod m (the total number of alpc team members) is just your alpc-number.
As more and more fresh man join us. How to number them? And how to avoid their alpc-number conflicted?
Of course, we can number them one by one, but that’s too bored! So ALPCs use another method called Fibonacci Check-up in spite of collision.
First you should multiply all digit of your studying number to get a number n (maybe huge).
Then use Fibonacci Check-up!
Fibonacci sequence is well-known to everyone. People define Fibonacci sequence as follows: F(0) = 0, F(1) = 1. F(n) = F(n-1) + F(n-2), n>=2. It’s easy for us to calculate F(n) mod m.
But in this method we make the problem has more challenge. We calculate the formula , is the combination number. The answer mod m (the total number of alpc team members) is just your alpc-number.
Input
First line is the testcase T.
Following T lines, each line is two integers n, m ( 0<= n <= 10^9, 1 <= m <= 30000 )
Following T lines, each line is two integers n, m ( 0<= n <= 10^9, 1 <= m <= 30000 )
Output
Output the alpc-number.
Sample Input
21 300002 30000
Sample Output
13
Source
2009 Multi-University Training Contest 5 - Host by NUDT
Recommend
gaojie | We have carefully selected several similar problems for you: 2254 2971 2294 3117 2256
参考代码:
#include<cstdio>#include<iostream>#include<cmath>#include<cstring>#include<algorithm>#include<string>#include<vector>#include<map>#include<set>#include<stack>#include<queue>#include<ctime>#include<cstdlib>#include<iomanip>#include<utility>#define pb push_back#define mp make_pair#define CLR(x) memset(x,0,sizeof(x))#define _CLR(x) memset(x,-1,sizeof(x))#define REP(i,n) for(int i=0;i<n;i++)#define Debug(x) cout<<#x<<"="<<x<<" "<<endl#define REP(i,l,r) for(int i=l;i<=r;i++)#define rep(i,l,r) for(int i=l;i<r;i++)#define RREP(i,l,r) for(int i=l;i>=r;i--)#define rrep(i,l,r) for(int i=1;i>r;i--)#define read(x) scanf("%d",&x)#define put(x) printf("%d\n",x)#define ll long long#define lson l,m,rt<<1#define rson m+1,r,rt<<11using namespace std;int t,n,m;struct mat{ int d[2][2];}A,B,E;mat multi(mat a,mat b){ mat ans; rep(i,0,2) { rep(j,0,2) { ans.d[i][j]=0; rep(k,0,2) ans.d[i][j]+=a.d[i][k]*b.d[k][j]; ans.d[i][j]%=m; } } return ans;}mat quickmulti(mat a,int n){ if(n==0) return E; if(n==1) return a; mat ans=E; while(n) { if(n&1) { n--; ans=multi(ans,a); } else { n>>=1; a=multi(a,a); } } return ans;}int main(){ read(t); E.d[0][0]=E.d[1][1]=1;E.d[0][1]=E.d[1][0]=0; while(t--) { read(n);read(m); A.d[0][0]=2;A.d[0][1]=A.d[1][0]=A.d[1][1]=1; B.d[0][0]=1,B.d[0][1]=B.d[1][0]=B.d[1][1]=0; mat ans=quickmulti(A,n); ans=multi(ans,B); printf("%d\n",ans.d[1][0]); }}
0 0
- HDU 2855解题报告
- HDU 3342 解题报告
- HDU 3336 解题报告
- HDU 3335 解题报告
- hdu 2516解题报告
- hdu 1004解题报告
- hdu 2139解题报告
- hdu 1019解题报告
- hdu 1064 解题报告
- HDU 1113 解题报告
- hdu 1068 解题报告
- HDU:2050解题报告
- hdu 4001解题报告
- hdu 1005解题报告
- HDU解题报告--1003
- HDU解题报告--1004
- HDU解题报告--1005
- HDU 1005 解题报告
- xampp修改mysql默认的空密码
- Android SystemClock
- Swift UI专项训练3 第二个场景
- 【日常学习】【双端队列】 Uva - 210 Concurrency Simulator题解
- POJ 题目1936 All in All(水题,暴力)
- HDU 2855解题报告
- 在 AIX 操作系统上如何安装 IBM DB2 9版本的分区环境
- Linux Kernel 4.0 RC1 发布!
- 保护双因子认证体系
- UVA 10201-Adventures in Moving – Part4(DP)
- HDOJ 1234 开门人和关门人(排序)(浙大2005研究生复试)
- 集体亮相:用cocos开发的高逼格3D游戏
- ns3 g++ 编译
- 服务虚拟化测试