正文

钥匙计数之一 hdu14382009-07-12 12:49:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/1mi2/45138.html

分享到:

递推方程式如下1:如果X是钥匙  则X1/2/3/4也是 所以a[I]=a[I-1]*42: 如果X不是,X2/3是则X由1/4组成/但要除去全1和全4 所以a[I]+=(2^(I-1)-2)*23 如果X不是 X1/4是。则X=Y(1/4) M=X1/4=Y(4/1)(1/4)前I-2位可以是1234,但要除去全为1/4的情况 还有就是X是钥匙且X是以1/4结尾的情况。我们用b[I]数组表示i位时以1/4结尾的的数量    temp=4^(i-2)-2^(i-2)-b[i-1]; 则 b[i]=a[i-1]*2+temp; 代码如下: #include<stdio.h>#include<math.h>int main(){    int i;    __int64 temp,a[32],b[32];//b[i]记录以1 4结尾的数    a[2]=0;    a[3]=8;    b[2]=0;    b[3]=4;    printf("N=2: 0\nN=3: 8\n");    for(i=4;i<=31;i++)    {        a[i]=a[i-1]*4;        a[i]+=(__int64)pow(2,i)-4;//以2 3 结尾的        temp=((__int64)pow(4,i-2)-(__int64)pow(2,i-2))*2-b[i-1];        a[i]+=temp;        b[i]=a[i-1]*2+temp;        printf("N=%d: %I64d\n",i,a[i]);    }return 0;    }

阅读(2683) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册