没有输出?炸了么

P1464 Function

我恍然大悟,发现自己多打了三个"!"
by middle_set @ 2017-08-31 20:29:41


#然而又出现了一个问题,名为MLE ```cpp #include <iostream> #include <cstring> using namespace std; int ans[21][21][21]; long long in[3]={0}; int out; int w(int a,int b,int c){ if(a<=0||b<=0||c<=0) return 1; else if(ans[a][b][c]) return ans[a][b][c]; else if(a=20&&b=20&&c=20) ans[20][20][20]=w(20,20,20); else if(a<b&&b<c) ans[a][b][c]=w(a,b,c-1)+w(a,b-1,c-1)-w(a,b-1,c); else ans[a][b][c]=w(a-1,b,c)+w(a-1,b-1,c)+w(a-1,b,c-1)-w(a-1,b-1,c-1); return ans[a][b][c]; } int main(){ memset(ans,0,sizeof(ans)); while(scanf("%lld%lld%lld",&in[0],&in[1],&in[2])){ if(in[0]!=-1&&in[1]!=-1&&in[2]!=-1) break; if(in[0]>20||in[1]>20||in[2]>20) in[0]=in[1]=in[2]=20; printf("w(%lld, %lld, %lld) = %d\n",in[0],in[1],in[2],w(in[0],in[1],in[2])); } } ```
by middle_set @ 2017-08-31 20:34:03


#错了这才是真正的MLE ```cpp #include <iostream> using namespace std; int ans[21][21][21]; long long in[3]={0}; int out; int w(int a,int b,int c){ if(a<=0||b<=0||c<=0) return 1; else if(ans[a][b][c]) return ans[a][b][c]; else if(a==20&&b==20&&c==20) ans[20][20][20]=w(20,20,20); else if(a<b&&b<c) ans[a][b][c]=w(a,b,c-1)+w(a,b-1,c-1)-w(a,b-1,c); else ans[a][b][c]=w(a-1,b,c)+w(a-1,b-1,c)+w(a-1,b,c-1)-w(a-1,b-1,c-1); return ans[a][b][c]; } int main(){ for(int i=0;i<21;i++) for(int j=0;j<21;j++) for(int k=0;k<21;k++) ans[i][j][k]=0; while(scanf("%lld%lld%lld",&in[0],&in[1],&in[2])){ if(in[0]==-1&&in[1]==-1&&in[2]==-1) break; if(in[0]>20||in[1]>20||in[2]>20) in[0]=in[1]=in[2]=20; printf("w(%lld, %lld, %lld) = %d\n",in[0],in[1],in[2],w(in[0],in[1],in[2])); } } ```
by middle_set @ 2017-08-31 20:35:23


话说楼主你是一个人在自言自语吗
by wangshuheng3541 @ 2017-09-02 17:51:34


MLE是什么????
by wangshuheng3541 @ 2017-09-02 17:52:12


|