免責事項:この記事はブロガーオリジナル記事です、続くBY-SAのCC 4.0を著作権契約、複製、元のソースのリンクと、この文を添付してください。
(チキン間違ったタイトルのディッシュ)ロサンゼルス間違ったタイトルのレコードがバレー
このレビューは私自身の使用です!
私は誰かの他の人のコードをコピーしてきました!侵略削除(* /ω\ *)
メモリマクロ
#define W_MEM(x,y,z) (w_mem[x][y][z] ? w_mem[x][y][z] : w_mem[x][y][z] = w(x, y, z))
Wが懇願していることを意味し、Wを返し、または、彼らはW値を代入してから返すように努めてまいります。
解決の数を減らすタイムアウト防ぐ
再帰+メモリ+マクロ機能を
直接ライン上のメモリマクロを定義
#include<bits/stdc++.h>
using namespace std;
#define W_MEM(x,y,z) (w_mem[x][y][z] ? w_mem[x][y][z] : w_mem[x][y][z] = w(x, y, z))
int a=1,b=1,c=1;
int w_mem[25][25][25];
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_MEM(20,20,20);
if(a < b && b < c) return W_MEM(a,b,c-1)+W_MEM(a,b-1,c-1) - W_MEM(a,b-1,c);
return W_MEM(a-1,b,c)+W_MEM(a-1,b-1,c)+W_MEM(a-1,b,c-1) - W_MEM(a-1,b-1,c-1);
}
int main(){
while(1){
cin>>a>>b>>c;
if(a==-1 && b==-1 && c==-1) break;
cout<<"w("<<a<<", "<<b<<", "<<c<<") = "<<w(a,b,c)<<endl;
}
}