啊实打实

P1464 Function

```cpp #include<cstdio> int vis[21][21][21]; int w(int a,int b,int c) { if(vis[a][b][c]) return vis[a][b][c]; if(a<=0||b<=0||c<=0) { vis[a][b][c]=1; return 1; } if(a>20||b>20||c>20) { vis[a][b][c]=w(20,20,20); return w(20,20,20); } if(a<b&&b<c) { vis[a][b][c]=w(a,b,c-1)+w(a,b-1,c-1)-w(a,b-1,c); return w(a,b,c-1)+w(a,b-1,c-1)-w(a,b-1,c); } vis[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 w(a-1,b,c)+w(a-1,b-1,c)+w(a-1,b,c-1)-w(a-1,b-1,c-1); } int main() { int a,b,c; for(int i=0;i<=20;i++) for(int j=0;j<=20;j++) for(int k=0;k<=20;k++) vis[i][j][k]=w(i,j,k); while(scanf("%d%d%d",&a,&b,&c)==3) { if(a==-1&&b==-1&&c==-1) break; if(a<=0||b<=0||c<=0) { printf("w(%d, %d, %d) = %d\n",a,b,c,1); continue; } if(a>20||b>20||c>20) { printf("w(%d, %d, %d) = %d\n",a,b,c,vis[20][20][20]); continue; } printf("w(%d, %d, %d) = %d\n",a,b,c,w(a,b,c)); } return 0; } ```
by 庸丿梦人 @ 2016-12-27 19:36:48


#呵呵 、、、#include<bits/stdc++.h> ```cpp using namespace std; int w(int a,int b,int c){ if(a<=0||b<=0||c<=0) return 1; if(a>20||b>20||c>20) return w(20,20,20); if(a<b&&b<c) return w(a,b,c-1)+w(a,b-1,c-1)-w(a,b-1,c); else return w(a-1,b,c)+w(a-1,b-1,c)+w(a-1,b,c-1)-w(a-1,b-1,c-1); } void read() { int i,j,a,b,c; while(1){ cin>>a>>b>>c; if(a==-1&&b==-1&&c==-1) break; cout<<"w("<<a<<", "<<b<<", "<<c<<") = "<<w(a,b,c)<<endl; } } int main() { read(); return 0; }、、、 ```
by 雄鹰展翅 @ 2017-03-29 19:34:51


|