zoukankan      html  css  js  c++  java
  • 【bzoj1002】轮状病毒

    Portal-->bzoj1002

    Solution

      虽然说看上去是一道矩阵树定理的题但是

      但是!

      没有模数了解一下,(n=100)了解一下

      开心愉快敲了一个高消之后发现跑到(80)都已经炸了

      果断放弃了高消写高精度的念头之后突然发现好像这堆矩阵长的都差不多啊

      然后就开始大力打表找规律了。。。

      最后发现其实如果用(f[x])表示(n=x)时的答案,那么我们有:

    [f[n]=3*f[n-1]-f[n-2]+2 ]

      然后就高精度一下就好了

      就是这么冷酷无情并且虚伪qwq

      

      代码大概长这个样子

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    using namespace std;
    const int N=110;
    struct bint{/*{{{*/
        int a[N+1];
        void set(int val){
            memset(a,0,sizeof(a));
            a[N]=val;
        }
        friend bint operator * (bint x,int y){
            bint ret; ret.set(0);
            int s,g=0;
            for (int i=N;i>=1;--i){
                s=x.a[i]*y+g;
                ret.a[i]=s%10;
                g=s/10;
            }
            return ret;
        }
        friend bint operator - (bint x,bint y){
            bint ret; ret.set(0);
            int s,g=0;
            for (int i=N;i>=1;--i){
                if (x.a[i]-g-y.a[i]>=0)
                    ret.a[i]=x.a[i]-g-y.a[i],g=0;
                else
                    ret.a[i]=x.a[i]+10-g-y.a[i],g=1;
            }
            return ret;
        }
        friend bint operator + (bint x,bint y){
            bint ret; ret.set(0);
            int s,g=0;
            for (int i=N;i>=1;--i){
                s=x.a[i]+y.a[i]+g;
                ret.a[i]=s%10;
                g=s/10;
            }
            return ret;
        }
        void print(){
            int j=1;
            while (a[j]==0) ++j;
            for (int i=j;i<=N;++i) printf("%d",a[i]);
            printf("
    ");
        }
    }f[N],two;/*}}}*/
    int n;
     
    int main(){
    #ifndef ONLINE_JUDGE
        freopen("a.in","r",stdin);
    #endif
        scanf("%d",&n);
        f[1].set(1);
        f[2].set(5);
        two.set(2);
        for (int i=3;i<=n;++i)
            f[i]=f[i-1]*3-f[i-2]+two;
        f[n].print();
    }
    
  • 相关阅读:
    flash编程实例源代码下载
    js4:with,for in语句,windows,location对象的使用
    js3:数据类型,数组,String各个属性,以及字符串表达式用eval计算
    挺喜欢这个网站的
    C#Url传递中文参数时解决方法
    .NET设计模式系列文章《转》
    maven surefire plugin介绍
    spring-boot-maven-plugin 插件的作用
    github提交表情包
    接口管理工具
  • 原文地址:https://www.cnblogs.com/yoyoball/p/9226259.html
Copyright © 2011-2022 走看看