HDU 1799 循环多少次?

原题链接:点击此处

解题思路:

由题意可知,当有K次for循环时,有如下公式 : ,即满足杨辉三角的组合数公式。

那么便可使用杨辉三角的方法来运算:

 

源代码:

#include <stdio.h>

int a[2005][2005];

int op()//杨辉三角模板
{
  for(int i=0;i<2005;++i)
  {
      a[i][0]=a[i][i]=1;
      for(int j=1;j<i;++j)
      {
          a[i][j]=(a[i-1][j]+a[i-1][j-1])%1007;
      }
  }
}

int main()
{
    int t,m,n;
    op();
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d %d",&m,&n);
        printf("%d\n",a[n][m]);
    }
    return 0;
}
View Code

 

 

 

posted @ 2016-08-06 10:56  君子酱  阅读(172)  评论(0编辑  收藏  举报