#3WA,改了之后#2WA不知道怎么回事

P1838 三子棋I

x,y都要改,不然在3的倍数的时候会出错 ```cpp #include <bits/stdc++.h> using namespace std; bool m[10][10]; int main(){ string s; cin >> s; if (s.size() < 9){ if (s.size()%2) cout << "xiaoa wins.\n"; else cout << "uim wins.\n"; return 0; }//没有下满就最后下的人获胜 for (int i = 0; i < s.size(); i++){ int x = (s[i]-'0'-1)/3+1; int y = (s[i]-'0'-1)%3+1; m[x][y] = bool(i%2); } for (int i = 1; i <= 3; i++){ if (m[i][1] == m[i][2] && m[i][2] == m[i][3]) { if (m[i][1]) cout << "uim wins.\n"; else cout << "xiaoa wins.\n"; return 0; } if (m[1][i] == m[2][i] && m[2][i] == m[3][i]) { if (m[1][i]) cout << "uim wins.\n"; else cout << "xiaoa wins.\n"; return 0; } } if (m[1][1] == m[2][2] && m[2][2] == m[3][3]) { if (m[1][1]) cout << "uim wins.\n"; else cout << "xiaoa wins.\n"; return 0; } if (m[1][3] == m[2][2] && m[2][2] == m[3][1]) { if (m[1][3]) cout << "uim wins.\n"; else cout << "xiaoa wins.\n"; return 0; } cout << "drew.\n"; return 0; } ```
by youyew2007 @ 2022-12-27 10:55:43


@[youyew2007](/user/349545) 谢
by Zjc20120331 @ 2022-12-28 11:30:17


# [博客地址](https://www.ricemoon.cn/) ```cpp #include <bits/stdc++.h> using namespace std; #define LL long long #define endl "\n" const int N = 1e5 + 10; void solve() { string s; cin >> s; int a[N], b[N]; vector<vector<int>> v = {{1, 2, 3}, {1, 5, 9}, {1, 4, 7}, {2, 5, 8}, {3, 6, 9}, {4, 5, 6}, {7, 8, 9}, {3, 5, 7}}; for (int i = 0; i < s.size(); i ++ ) { if (i & 1) { b[s[i] - '0'] = 2; } else { a[s[i] - '0'] = 1; } } for (int i = 0; i < v.size(); i ++ ) { if (a[v[i][0]] == 1 and a[v[i][1]] == 1 and a[v[i][2]] == 1) { cout << "xiaoa wins." << endl; return; } if (b[v[i][0]] == 2 and b[v[i][1]] == 2 and b[v[i][2]] == 2) { cout << "uim wins." << endl; return; } } cout << "drew." << endl; } int main() { ios::sync_with_stdio(false); cin.tie(0); solve(); return 0; } ```
by Roger_Spencer @ 2023-02-19 09:49:02


|