zoukankan      html  css  js  c++  java
  • bzoj 1002: [FJOI2007]轮状病毒

    基尔霍夫矩阵(我也不知道是什么)推出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 } 
  • 相关阅读:
    53. Maximum Subarray
    64. Minimum Path Sum
    28. Implement strStr()
    26. Remove Duplicates from Sorted Array
    21. Merge Two Sorted Lists
    14. Longest Common Prefix
    7. Reverse Integer
    412. Fizz Buzz
    linux_修改域名(centos)
    linux_redis常用数据类型操作
  • 原文地址:https://www.cnblogs.com/xydddd/p/5223691.html
Copyright © 2011-2022 走看看