zoukankan      html  css  js  c++  java
  • bzoj 1002 轮状病毒

    这题我只是为了练高精度

    然后我就写了个压位高精

    结果还没有1a

    深感自己的菜

    第一次因为输出了中间结果

    第二次是因为没有管自己打的进/借位标记

    太菜了

    代码:

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cmath>
     4 #include<cstdlib>
     5 #include<algorithm>
     6 #include<cstring>
     7 #include<vector>
     8 #include<map>
     9 #include<queue>
    10 #define inf 2147483611
    11 #define ll long long 
    12 #define MAXN 110
    13 #define MOD 1000000000
    14 using namespace std;
    15 inline int read()
    16 {
    17     int x=0,f=1;
    18     char ch;ch=getchar();
    19     while(!isdigit(ch)) {if(ch=='-') f=-1;ch=getchar();}
    20     while(isdigit(ch)) {x=x*10+ch-'0';ch=getchar();}
    21     return x*f; 
    22 }
    23 struct bign
    24 {
    25     int len,val[12];
    26     bign() {memset(val,0,sizeof(val));len=0;}
    27     void Print()
    28     {
    29         printf("%d",val[len]);
    30         for(int i=len-1;i>=0;i--)
    31         {
    32             printf("%09d",val[i]);
    33         }
    34     }
    35     bign operator + (const bign &a) const
    36     {
    37         bign ans;
    38         ans.len=max(len,a.len);
    39         for(int i=0;i<=ans.len;i++)
    40         {
    41             ans.val[i]+=val[i]+a.val[i];
    42             if(ans.val[i]>=MOD) {ans.val[i+1]++;ans.val[i]-=MOD;}
    43         }
    44         if(ans.val[ans.len+1]) ans.len++;
    45         return ans;
    46     }
    47     bign operator - (const bign &a) const
    48     {
    49         bign ans;
    50         ans.len=max(len,a.len);
    51         for(int i=0;i<=ans.len;i++)
    52         {
    53             ans.val[i]+=val[i]-a.val[i];
    54             if(ans.val[i]<0) {ans.val[i+1]--;ans.val[i]+=MOD;}
    55         }
    56         if(ans.val[ans.len]<=0) ans.len--;
    57         return ans;
    58     }
    59 }f[MAXN];
    60 int main()
    61 {
    62     int n=read();
    63     if(n==1) printf("1");
    64     f[1].val[0]=1;
    65     bign k;k.val[0]=2;
    66     for(int i=2;i<=n;i++)
    67     {
    68         f[i]=f[i-1]+f[i-1]+f[i-1]-f[i-2]+k;
    69     }
    70     f[n].Print();
    71 }
    View Code
  • 相关阅读:
    2015年终总结
    mmzb游戏事故分析
    为sproto手写了一个python parser
    Lua小技巧
    Techparty-广州 10 月 31 日 Docker 专场沙龙 后记
    1password密码库格式更新
    SSL加密与系统时间
    webpack的学习使用三
    webpack的学习使用二
    webpack的学习使用一
  • 原文地址:https://www.cnblogs.com/yyc-jack-0920/p/7615739.html
Copyright © 2011-2022 走看看