對局
#include <cstdio> int tab[100][100]; int n1, n2, k1, k2; int getdp(int a, int b){ if(a*b == 0) return a > 0; if(tab[a][b] != -1) return tab[a][b]; tab[a][b] = 1; for(int lx = 1; lx <= a;lx++){ tab[a][b] *= getdp(b, a - lx); } tab[a][b] = 1 - tab[a][b]; return tab[a][b]; } int main(){ for(int lx = 0;lx < 100;lx++) for(int ly = 0;ly < 100;ly++) tab[lx][ly] = -1; scanf("%d %d %d %d", &n1, &n2, &k1, &k2); puts(getdp(n1, n2) ? "First" : "Second"); return 0; }
沒有留言:
張貼留言