hlgoj1881

 1 #include <stdio.h>
 2 int num[1000000+10];
 3 int main(){
 4     int l,m;
 5     int i,j;
 6     int sign;
 7     num[0]=1;
 8     num[1]=2;
 9     while(~scanf("%d%d",&l,&m)){
10         sign=1;
11         for(i=2;i<=l;++i){
12             if(sign==1){
13                 num[i]=num[i-2]+num[i-1]+1;
14             }else if(sign==2){
15                 num[i]=num[i-2]+num[i-1];
16             }else if(sign==3){
17                 if(num[i-2]+num[i-1]==0) 
18                 num[i]=m-1;
19                 if(num[i-2]+num[i-1]!=0)
20                     num[i]=num[i-2]+num[i-1]-1;
21             }else if(sign==0){
22                 num[i]=num[i-2]+num[i-1];
23             }
24             num[i]=num[i]%m;
25             sign=sign+1;
26             sign=sign%4;
27         }
28         printf("%d\n",num[l]%m);
29     }
30     return 0;
31 }

--------------------------------------------------------------------------

fmf  ==> 101 ==> 5    fff ==> 111 ==> 7

--------------------------------------------------------------------------

cnt =0

from i <--1 to n

    t <-- i

    while( t != 0 )

      if ( t mod 8==5 || t mod 8==7 )  { cnt ++; break; }

    t=t/2

--------------------------------------------------------------------------   

      | |

      | |

      | |

   list  

i=0,cnt=1
i=1,cnt=2
i=2,cnt=4
i=3,cnt=6
i=4,cnt=9
i=5,cnt=15
i=6,cnt=25
i=7,cnt=40
i=8,cnt=64
i=9,cnt=104
i=10,cnt=169
i=11,cnt=273
i=12,cnt=441
i=13,cnt=714
i=14,cnt=1156
i=15,cnt=1870
i=16,cnt=3025
i=17,cnt=4895
i=18,cnt=7921
i=19,cnt=12816
i=20,cnt=20736
i=21,cnt=33552
i=22,cnt=54289
i=23,cnt=87841
i=24,cnt=142129
i=25,cnt=229970
i=26,cnt=372100
i=27,cnt=602070
i=28,cnt=974169
i=29,cnt=1576239
i=30,cnt=2550409

 

 

posted on 2013-09-21 03:17 symons 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/symons1992/p/3330960.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值