/*记忆化搜索*/ #include using namespace std; ll v[25][25][25]={0}; ll w(ll a,ll b,ll c){ if(a<=0||b<=0||c<=0){return 1;} else if(v[a][b][c]!=0) return v[a][b][c]; else if(a>20||b>20||c>20) v[a][b][c]=w(20,20,20); else if(a>a>>b>>c){ memset(v,0,sizeof(v)); if(a==-1&&b==-1&&c==-1){ return 0; } printf("w(%lld, %lld, %lld) = ",a,b,c); if(a>20) a=21; if(b>20) b=21; if(c>20) c=21; printf("%lld\n",w(a,b,c)); } }