zoukankan      html  css  js  c++  java
  • UVA 1647 Computer Transformation

    https://vjudge.net/problem/UVA-1647

    题意:

    开始有一个1,接下来每一步1变成01,0变成10

    问n不之后00的个数

    打表找规律

    第3步之后:

    如果第i步之后有x个字符,

    那么第i+1步之后 的后x个字符与第i步一样

    前x个字符是第i步取反

    所以00得个数由三部分组成

    1、上一步00的个数

    2、上一步11的个数

    3、当i为偶数时,前x个字符的最后一个是0,后x个字符的第一个是0,00个数+1

    f[i][0]=f[i-1][0]+f[i-1][1]+!(i&1)

    f[i][1]=f[i-1][0]+f[i-1][1]

    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    struct BigInteger
    {
        int len;
        int num[10001];
        BigInteger() { len=0; memset(num,0,sizeof(num));}
        BigInteger operator + (BigInteger p) const
        {
            BigInteger b;
            b.len=max(len,p.len);
            int x=max(len,p.len);
            for(int i=1;i<=x;i++)
            {
                b.num[i]+=num[i]+p.num[i];
                b.num[i+1]=b.num[i]/10;
                b.num[i]%=10;
            }
            if(b.num[x+1]) x++;
            b.len=x;
            return b;
        }
        void operator = (BigInteger p) 
        {
            this->len=p.len;
            for(int i=1;i<=len;i++) this->num[i]=p.num[i];
        } 
        void print()
        {
            for(int i=len;i;i--) printf("%d",num[i]);
            printf("
    ");
        }
    };
    BigInteger f[1001][2];
    BigInteger e;
    int main()
    {
        f[1][0].len=1;
        f[1][0].num[1]=0;
        f[2][0].len=1;
        f[2][0].num[1]=1;
        e.len=1; 
        e.num[1]=1;
        for(int i=3;i<=1000;i++) 
        {
            f[i][1]=f[i-1][0]+f[i-1][1];
            if(i&1)  f[i][0]=f[i-1][0]+f[i-1][1];
            else f[i][0]=f[i-1][0]+f[i-1][1]+e;
        }
        int n;
        while(scanf("%d",&n)!=EOF) f[n][0].print();
    }
  • 相关阅读:
    Sublime Text 3065
    FBX .NET
    macbook pro的usb串口失效的的处理方法
    CMAKE使用
    Ctrl+Scroll改变所有Editor的缩放比例 (Code::Blocks)
    如何在Mac OSX 10.10上安装GDB
    yum安装指定(特定)版本(旧版本)软件包的方法
    MinGW: TOO MANY SECTIONS issue
    轻量级Image Library
    CodeLite的姿势
  • 原文地址:https://www.cnblogs.com/TheRoadToTheGold/p/7412706.html
Copyright © 2011-2022 走看看