标签:
Description
Input
Output
Sample Input
2 1 3 2 3
Sample Output
3 3
分析:本题读懂题意很关键,题目的实质就是排列组合问题,多推几组数据找规律,c(m)n=(c(m-1)n-1+c(m)n-1)*(n-1),这个问题想了很久还没有完全弄懂,注意超时问题
心得:考虑问题要全面不要落下一些特别情况,要不等你写完代码后再找就会麻烦很多
AC代码:
#include <iostream>;
#include<cstring>;
#define N 2000
using namespace std;
int a[N+10][N+10];
void fun()//打表
{
int i,j;
memset(a,0,sizeof(a));
for(i=2;i<=N;i++)
a[i][1]=0;
for(j=1;j<=N;j++)
a[1][j]=j%1007;
for(i=2;i<=N;i++)
for(j=2;j<=N;j++)
a[i][j]=(a[i][j-1]+a[i-1][j-1])%1007;
}
int main()
{
int m,n,t;
cin>>t;
fun();//函数被我写到循环里面去了,造成超时
while(t--)
{
cin>>m>>n;
cout<<a[m][n]<<endl;
}
return 0;
}
标签:
原文地址:http://www.cnblogs.com/lbyj/p/5727273.html