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 } 
  • 相关阅读:
    包含min函数的栈
    树的子结构
    合并两个排序的链表
    反转链表
    字符移位
    有趣的数字
    顺时针打印矩阵
    有道云笔记自动签到
    Shell重定向
    Ubuntu 18.04安装Docker
  • 原文地址:https://www.cnblogs.com/xydddd/p/5223691.html
Copyright © 2011-2022 走看看