这样写还是全WA,求助

P1464 Function

@[zhou1108__](/user/522135) 你改变了d, f, g的值。输出就出了问题。 有一组数据 `50 50 50`, 输出是` w(50, 50, 50) = 1048576`, 你是` w(21, 21, 21) = 1048576`。 建议加上如下代码 ``` while(cin>>d>>f>>g){//yours int dd, ff, gg;//new dd = d;//new ff = f;//new gg = g;//new if(d==-1&&f==-1&&g==-1)break;//yours ```
by DeusExMachina @ 2021-07-27 11:15:29


@[zhou1108__](/user/522135) 全部代码 你需要改一改。我用这个提交过了,您再提交可能会被反作弊。 ```cpp #include<bits/stdc++.h> using namespace std; long long f[25][25][25]; long long w(long long a, long long b, long long c) { if (a <= 0 || b <= 0 || c <= 0) return 1; else if (a > 20 || b > 20 || c > 20) return w(20, 20, 20); else if (f[a][b][c] != 0) return f[a][b][c]; else if (a < b && b < c) f[a][b][c] = w(a,b,c-1)+w(a,b-1,c-1)-w(a,b-1,c); else f[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 f[a][b][c]; } int main(){ long long d,f,g; while(cin>>d>>f>>g){ int dd, ff, gg; dd = d; ff = f; gg = g; if(d==-1&&f==-1&&g==-1)break; if(d>20) d=21; if(f>20) f=21; if(g>20) g=21; cout<<"w("<<dd<<", "<<ff<<", "<<gg<<") = "<<w(d,f,g)<<endl; } return 0; } ```
by DeusExMachina @ 2021-07-27 11:17:14


@[TheRedKiller_](/user/361833) !谢谢(//* (不过为什么要用您来称呼)
by 山迟暮 @ 2021-07-27 11:26:28


@[zhou1108__](/user/522135) 因为您强。
by DeusExMachina @ 2021-07-27 11:26:55


@[TheRedKiller_](/user/361833) (属实担不起。
by 山迟暮 @ 2021-07-27 11:55:52


|