HDU 1005 Number Sequence
2013-08-08 10:47
447 查看
题意:给出一个递推式f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7 中的A,B和n,让你输出f(n)。
分析:找循环节。以为f(n)是由f(n-1),f(n-2)推出的,而且f(n)<7,所以组合起来最多有7*7共49种。f(1)=f(2)=1,所以可以以1,1作为循环节的头部来找循环节。(但以1,1作为循环节的头部作为循环节的头部是有问题的,但打表来看虽然有问题,但并不影响这种方法最终结果的正确性)
Code:
#include <algorithm>
#include <iostream>
#include <cstring>
#include <string>
#include <cstdio>
#include <vector>
#include <queue>
#include <cmath>
#include <map>
#include <set>
#define eps 1e-7
#define LL long long
#define pb push_back
#define Max(a,b) ((a)>(b)?(a):(b))
#define Min(a,b) ((a)<(b)?(a):(b))
using namespace std;
int f[55];
int main()
{
int a,b,n,i;
f[1]=f[2]=1;
while(scanf("%d %d %d",&a,&b,&n),a+b+n){
for(i=3;i<50;i++){
f[i]=(a*f[i-1]+b*f[i-2])%7;
if(f[i]==1&&f[i-1]==1) break;
}
i-=2;
n%=i;
if(!n) printf("%d\n",f[i]);
else printf("%d\n",f
);
}
return 0;
}
分析:找循环节。以为f(n)是由f(n-1),f(n-2)推出的,而且f(n)<7,所以组合起来最多有7*7共49种。f(1)=f(2)=1,所以可以以1,1作为循环节的头部来找循环节。(但以1,1作为循环节的头部作为循环节的头部是有问题的,但打表来看虽然有问题,但并不影响这种方法最终结果的正确性)
Code:
#include <algorithm>
#include <iostream>
#include <cstring>
#include <string>
#include <cstdio>
#include <vector>
#include <queue>
#include <cmath>
#include <map>
#include <set>
#define eps 1e-7
#define LL long long
#define pb push_back
#define Max(a,b) ((a)>(b)?(a):(b))
#define Min(a,b) ((a)<(b)?(a):(b))
using namespace std;
int f[55];
int main()
{
int a,b,n,i;
f[1]=f[2]=1;
while(scanf("%d %d %d",&a,&b,&n),a+b+n){
for(i=3;i<50;i++){
f[i]=(a*f[i-1]+b*f[i-2])%7;
if(f[i]==1&&f[i-1]==1) break;
}
i-=2;
n%=i;
if(!n) printf("%d\n",f[i]);
else printf("%d\n",f
);
}
return 0;
}
相关文章推荐
- HDU 1005 Number Sequence 找规律
- HDU - 1005 Number Sequence 周期是48?不,是336!
- HDU-1005-Number Sequence
- HDU 1005 Number Sequence
- HDU 1005 Number Sequence
- HDU_1005_ Number Sequence
- hdu 1005 Number Sequence
- HDU 1005 Number Sequence (数学规律)
- HDU 1005 Number Sequence
- HDU 1005 Number Sequence(基础矩阵快速幂)
- HDU 1005 Number Sequence[数论]
- hdu 1005 Number Sequence
- hdu 1005 Number Sequence
- hdu 1005 Number Sequence
- HDU 1005 Number Sequence
- hdu1005--(Number Sequence)
- HDU 1005 Number Sequence
- HDU--1005 -- Number Sequence [数论]
- HDU——1005——Number Sequence
- HDU 1005-Number Sequence(找规律)