hdu 1799
#include<iostream> using namespace std; int arr[2003][2003]; void set(){ int i,j; arr[0][0]=1; for(i=1;i<=2000;i++) { arr[i][0]=1; for(j=1;j<=2000;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; }
无话可说,重在公式推导C(m,n)
关于取余,针对每一项,由于是加法,取余可在打表时就解决,因为越到后面反而越大
可以说是DP,也可以说是数学公式
打表好处:
1. 节约程序时间,后者可直接调用表中数据
每天早上叫醒你的不是闹钟,而是心中的梦~