现在的位置: 首页 > 综合 > 正文

hdu-1799

2014年01月09日 ⁄ 综合 ⁄ 共 392字 ⁄ 字号 评论关闭

dp (n, m) = dp (n - 1, m - 1) + dp (n - 2, m - 1) + ... + dp (0, m - 1)  (按定义, 一共 n 项)

               = dp (n - 1, m - 1) + dp (n - 1, m)  (把后面 n - 1 项合并)

#include<iostream>
using namespace std;
int arr[2013][2013];
void set()
{
    int i,j;
    for (i=1;i<2013;i++)
    {
        arr[i][1]=i%1007;
        arr[i][0]=1;
    }
    for(i=2;i<2013;++i)
        for(j=1;j<2013;++j)
            arr[i][j]=(arr[i-1][j-1]+arr[i-1][j])%1007;
}
int main()
{
    set();
    int t,m,n;
    while(cin>>t)
        while(t-- && cin>>m>>n)
            cout<<arr[n][m]<<endl;
    return 0;
}

抱歉!评论已关闭.