HDU P1005 Number Sequence
来源:互联网 发布:移动宽带网络连接不上 编辑:程序博客网 时间:2024/05/17 08:01
题目大意:
一副序列,f[1]=1,f[2]=1,以及一组数A,B,N
fi的递推式是fi=(fi-1*A+fi-2*B)对7取模
让你求出fn
给出多组a,b,n,以a=0,b=0,n=0结束输出
1 < = A、B < = 1000,1 < = n < = 100000000
题解:
找规律+数学:
这题一看数据就知道是找规律的题,不过找了好久,一开始是在想A,B的数量,
然后推了一些东东,如下
后来发现这样推下去找不到明显的规律,
后来经过一番深 d 思 f 熟 s 虑,发现了一个重要的地方,
因为取模7,所以任意2个,[fi-1,fi]都在[0..6,0..6]这里面,即有49种可能,那么N里面则很明显会存在循环节,我们只需要把这个循环节找出来即可,
因为fi从fi-1,fi-2推来,所以[f1,f2]为[1,1]那么后面一旦出现了[fi-1,fi]=[1,1]则找到了循环节,
而因为只有49种可能,所以最多只需要枚举一下就可以将循环节找出来,
而结果fn就是f[(n-1) mod l+1],l为循环节长度…
var f:Array [0..51] of longint; i,a,b,n:longint;begin readln(a,b,n); while (a<>0) or (b<>0) or (n<>0) do begin f[1]:=1; f[2]:=1; for i:=3 to 51 do begin f[i]:=(f[i-1]*a+f[i-2]*b) mod 7; if (f[i]=-1) and (f[i-1]=-1) then break; end; writeln(f[(n-1) mod i+1]); readln(a,b,n); end;end.
阅读全文
1 0
- HDU P1005 Number Sequence
- hdu 1711 Number Sequence
- hdu 1711 Number Sequence
- HDU 1005 Number Sequence
- hdu 1711 Number Sequence
- hdu 1005 Number Sequence
- Hdu-1711 Number Sequence
- HDU 1005 Number Sequence
- hdu 1711 Number Sequence
- HDU 1711 Number Sequence
- HDU 1711 Number Sequence
- hdu 1711 Number Sequence
- hdu 1005 Number Sequence
- HDU-1711-Number Sequence
- hdu 4390 Number Sequence
- HDU 1005 Number Sequence
- HDU 1005 Number Sequence
- hdu 1711 Number Sequence
- 火狐全部版本
- loj6002「网络流 24 题」最小路径覆盖(最小路径覆盖+二分图最大匹配)
- centos 笔记
- springboot 简单用户管理模块
- IT道德与伦理
- HDU P1005 Number Sequence
- 火狐全部版本
- 二维码扫描
- ######【其他电脑拷贝来的虚拟机打开报错,纠结了好久.耽误事!!!】经验:【打开时①错误提示忽略,②关键:《选择“已移动”,不选“已复制”(MAC会变启动失败)》”】
- 数据结构实验之查找四:二分查找
- jQuery登录验证
- 夜晚接到了下班的码农
- Python中必须掌握的常用字符串处理函数
- 敏感字自动过滤