[高精度][BZOJ1002][FJOI2007]轮状病毒
2015-06-07 12:07
519 查看
[FJOI2007]轮状病毒
时间限制: 1 Sec 内存限制: 128 MB
题目描述
给定n(N<=100),编程计算有多少个不同的n轮状病毒。
输入
第一行有1个正整数n。
输出
将编程计算出的不同的n轮状病毒数输出
样例输入
3
样例输出
16
时间限制: 1 Sec 内存限制: 128 MB
题目描述
给定n(N<=100),编程计算有多少个不同的n轮状病毒。
输入
第一行有1个正整数n。
输出
将编程计算出的不同的n轮状病毒数输出
样例输入
3
样例输出
16
题解
f[i]=(f[i-1]*3-f[i-2]+2)var w:array[1..100,0..43]of longint; i,j:longint; n:longint; procedure did(a:longint); var last,i,b:longint; begin last:=0; b:=0; for i:=1 to w[a-1,0] do begin b:=w[a-1,i]*3; w[a,i]:=(b+last) mod 10; last:=(b+last) div 10; end; if last<>0 then begin w[a,w[a-1,0]+1]:=last; w[a,0]:=w[a-1,0]+1; end else w[a,0]:=w[a-1,0]; last:=0; b:=0; for i:=1 to w[a,0] do begin if i=1 then b:=w[a,i]+2 else b:=w[a,i]; w[a,i]:=(b+last) mod 10; last:=(b+last) div 10; end; if last<>0 then begin w[a,w[a,0]+1]:=last; inc(w[a,0]); end; last:=0; b:=0; for i:=1 to w[a,0] do begin if w[a,i]+last>=w[a-2,i] then begin w[a,i]:=w[a,i]+last-w[a-2,i]; last:=0; end else begin b:=w[a,i]+10; w[a,i]:=b+last-w[a-2,i]; last:=-1; end; end; end; begin w[1,1]:=1; w[2,1]:=5; w[1,0]:=1; w[2,0]:=1; readln(n); for i:=3 to n do did(i); if w[n,w[n,0]]=0 then dec(w[n,0]); for j:=w[n,0] downto 1 do write(w[n,j]); writeln; end.
相关文章推荐
- 第13周项目1-动物这样叫(3)
- Linux内核与驱动开发学习总结:设备驱动模型(九)
- android 自定义view2
- [LeetCode][JavaScript]Count Complete Tree Nodes
- chapter11test4
- iOS 数值转换成string
- NYOJ1100WAJUEJI which home strong!(bfs+优先队列)
- Storm入门之附录C
- Linux内核与驱动开发学习总结:中断和中断处理(八)
- 【转】Android C程序也可自己手动用交叉编译器编译 (
- 2015年6月7日
- 黑马程序员+7K面试题 交通灯
- Storm入门之附录B
- nyoj 171 聪明的kk
- JQuery学习笔记(一)
- 【百度之星复赛】最强密码
- Linux内核与驱动开发学习总结:内核访问外设IO.map_desc和ioremap(七)
- 练习作品13:电子试卷自动生成软件
- JNDI介绍
- [DP][NOIP2004] 合唱队形