• 暑假集训(4)第三弹 -----递推(Hdu1799)


    问题描述:还记得正在努力脱团的小A吗? 他曾经最亲密的战友,趁他绘制贤者法阵期间,暗中设下鬼打墙将小A

    围困,并准备破坏小A正在绘制的法阵。小A非常着急。想阻止他的行动。而要阻止他,必须先破解鬼打墙。

    哎,你不得不再次帮助他,告诉他在鬼打墙内应该走多少步。才能打破所有for循环。

    问题分析:可以利用杨辉三角:1

                                            1    1

                                            1     2    1

                                            1     3     3    1

                                            1     4     6    4   1

                                              ........

                                            1    a[i-1][j]+a[i-1][j] ...............1

    先打表,应该不会超时了。

     1 #include "cstdio"
     2 __int64 a[2004][2004];
     3 void abegin()
     4 {
     5     for (int i=0;i<=2003;i++)
     6       for (int j=0;j<=2003;j++)
     7          a[i][j] = 0;
     8     for (int i=1;i<=2003;i++)
     9     {
    10       a[i][i] = 1;
    11       if (i != 1)
    12        for (int j=1;j<=i;j++)
    13          a[i][j] = (a[i-1][j] +a[i-1][j-1])%1007;
    14     }
    15 }
    16 int main()
    17 {
    18     int t,n,m;
    19     scanf ("%d",&t);
    20     abegin();
    21     while (t-- && scanf ("%d%d",&m,&n))
    22     {
    23           printf ("%d
    ",a[n+1][m+1]);
    24     }
    25     return 0;
    26 }
    View Code
  • 相关阅读:
    NTT算法小结
    FFT算法小结
    [USACO18DEC]Balance Beam
    洛谷4014分配问题
    洛谷4015运输问题
    洛谷3356火星探险问题
    python中函数详解
    python函数详解
    Python中对文件处理
    Python中的字符编码
  • 原文地址:https://www.cnblogs.com/huas-zlw/p/5727191.html
Copyright © 2020-2023  润新知