SRM 384

来源:互联网 发布:淘宝网儿童秋冬装 编辑:程序博客网 时间:2024/06/14 11:44

暴力SG值

#include <vector>#include <list>#include <map>#include <set>#include <deque>#include <stack>#include <bitset>#include <algorithm>#include <functional>#include <numeric>#include <utility>#include <sstream>#include <iostream>#include <iomanip>#include <cstdio>#include <cmath>#include <cstdlib>#include <ctime>#include <cstring>using namespace std;class ChessTraining {public:string game(vector<int> , vector<int> );};int a[105][105];int b[10005];int bc;string ChessTraining::game(vector<int> x, vector<int> y) {int i, j, k;memset(a, 0, sizeof(a));memset(b, 0, sizeof(b));bc = 1;for (i = 0; i < 105; ++i) {for (j = 0; j < 105; ++j) {if (i == j)continue;if (i == 0 || j == 0)continue;for (k = 1; k <= i || k <= j; ++k) {if (k < i && i - k != j)b[a[i - k][j]] = bc;if (k < j && j - k != i)b[a[i][j - k]] = bc;if (k < i && k < j)b[a[i - k][j - k]] = bc;}for (k = 0;; k++)if (b[k] != bc)break;a[i][j] = k;bc++;}}int ans = 0;for (i = 0; i < x.size(); ++i) {if (x[i] == 0 || y[i] == 0 || x[i] == y[i])return "Alice will win";ans ^= a[x[i]][y[i]];}if (ans)return "Alice will win";elsereturn "Bob will win";}


0 0