码迷,mamicode.com
首页 > 其他好文 > 详细

bzoj 1002: [FJOI2007]轮状病毒

时间:2016-02-27 23:32:38      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:

基尔霍夫矩阵(我也不知道是什么)推出f[i]=(f[i-1]*3-f[i-2]+2)(这其实是我抄的)

还是要高精的。

 1 #include<cstdio>
 2 #include<iostream>
 3 using namespace std;
 4 int f[102][102],n;
 5 void mul(int a1)
 6 {
 7     f[a1][0]=f[a1-1][0];
 8     for(int i=1;i<=f[a1-1][0];i++)
 9     {
10       f[a1][i]+=f[a1-1][i]*3;
11       f[a1][i+1]+=f[a1][i]/10;
12       f[a1][i]%=10;
13     }
14     if(f[a1][f[a1][0]+1])
15       f[a1][0]++;
16     return;
17 }
18 void jia(int a1)
19 {
20     f[a1][1]+=2;
21     for(int i=1;i<=f[a1][0];i++)
22       {
23         f[a1][i]-=f[a1-2][i];
24         if(f[a1][i]<0)
25         {
26         f[a1][i+1]--;
27         f[a1][i]+=10;
28         }
29       }
30     for(;f[a1][f[a1][0]]==0;)
31       f[a1][0]--;
32     return;
33 }
34 int main()
35 {
36     scanf("%d",&n);
37     f[1][0]=1;
38     f[1][1]=1;
39     f[2][0]=1;
40     f[2][1]=5;
41     for(int i=3;i<=n;i++)
42       {
43         mul(i);
44         jia(i);
45       }
46     for(int i=f[n][0];i;i--)
47       printf("%d",f[n][i]);
48     return 0;
49 } 

 

bzoj 1002: [FJOI2007]轮状病毒

标签:

原文地址:http://www.cnblogs.com/xydddd/p/5223691.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!