• HDU 1005 Number Sequence


    解题报告:

    题目大意:

    f[1]=f[2]=1;f[n]=(A*f[n-1]+B*f[n-2])%7

    建议还没有做这道题的人就不要花时间了,这题纯属一道坑爹的题,测试数据很多问题,并且已经有大神证明过这道题在逻辑上就有错误,但是这里还是说一下解题思路。

    这道题数据量较大,有如果把1到n都算出来的话显然会TLE,所以得避开这个,我们可以发现f[n]的结果会呈现一个周期,所以我们只要算出一个周期内的f[n]就可以了,至于周期

    是多少这里就不说了。。。。

     1 #include<cstdio>
     2 int a[100005];
     3 int main() {
     4     int A,B,N;
     5     a[1]=a[2]=1;
     6     while(scanf("%d%d%d",&A,&B,&N)&&(A||B||N)) {
     7         for(int i=3;i<=48;++i)
     8         a[i]=(A*a[i-1]+B*a[i-2])%7;
     9         printf("%d\n",a[N%48]);
    10     }
    11     return 0;
    12 }
    View Code
  • 相关阅读:
    图象处理算法(一)
    使用自定义类实现工程多语言
    SQL的数据类型
    SQL LEFT JOIN
    TADOCommand
    如何获得活动的数据
    TDateTime
    类定义(一)
    mxOutlookBar组件安装和使用
    TADOQuery
  • 原文地址:https://www.cnblogs.com/xiaxiaosheng/p/3082531.html
Copyright © 2020-2023  润新知