ZOJ - 3468 Dice War

难得的1A,泪流满面。

由于规模小,直接brute force。简单,粗暴。

 

 

 

#include <cstdio> #include <cmath> int g[9][50]; double gg[9][50]; int main(int argc, char* argv[]) { int att, def; for(int i = 1; i <= 6; i++) { for(int j = 1; j <= 6; j++) { for(int k = 1; k <= 6; k++) { for(int a = 1; a <= 6; a++) { for(int b = 1; b <= 6; b++) { for(int c = 1; c <= 6; c++) { for(int d = 1; d <= 6; d++) { for(int e = 1; e <= 6; e++) { g[8][i+j+k+a+b+c+d+e]++; } g[7][i+j+k+a+b+c+d]++; } g[6][i+j+k+a+b+c]++; } g[5][i+j+k+a+b]++; } g[4][i+j+k+a]++; } g[3][i+j+k]++; } g[2][i+j]++; } g[1][i]++; } for(int q = 1; q <= 8; q++) { for(int i = 1, t = q*6, z = (int)pow(6,q); i <= t ;i++) { gg[q][i] = (double)g[q][i]/z; } } while(scanf("%d%d", &att, &def) != EOF) { double tol = 0.0; for(int t = 6*att, i = 2; i <= t; i++) { for(int j = 1; j < i; j++) { tol += gg[att][i] * gg[def][j]; } } printf("%.16lf/n",tol); } return 0; } 

 

ps.还能用dp做的,有时间再补上。

你可能感兴趣的:(ZOJ - 3468 Dice War)