讨论 / 超时
rgb456rgb 2011-03-25 23:56:00
点我顶贴 收藏 删除
#include<stdio.h>

#include<stdlib.h>

long long n,i,j,k,l,m,p,t,t1,t2,t3,a[110][310][310],s[110][310][310];

int main(){

t1=1000000007;

for (i=1;i<=300;i++){

a[1][i][0]=1;

s[1][i][0]=i;

}

for (i=2;i<=100;i++){

for (j=1;j<=300;j++){

t=1;

for (k=1;k<i;k++){

t*=j;

t%=t1;}

a[i][j][0]=t;

s[i][j][0]=a[i][j][0]+s[i][j-1][0];s[i][j][0]%=t1;

for (k=1;k<=j&&k<i;k++){

a[i][j][k]=a[i-1][j][k]*j+s[i-1][j-1][k-1];a[i][j][k]%=t1;

s[i][j][k]=s[i][j-1][k]+a[i][j][k];s[i][j][k]%=t1;

}

}}

scanf("%d",&t);

for (i=1;i<=t;i++){

scanf("%d%d%d",&n,&m,&p);

printf("%d\n",s[n][m][p]);}

system("pause");

}

近似打表的算法居然可以全部超时。。。。。我无言以对。

#1 noip2012@2011-03-25 23:56:00
回复 删除
Orz,没想到C++也有这种问题
查看更多回复
提交回复