题目链接:fzu 2146 Easy Game
题目连接:fzu 2147 A-B Game
题目链接:fzu 2151 OOXX Game
题意略。
2146
#include#include const int N = 10100; const char sign[2][N] = {"Even", "Odd"}; int main () { char str[N]; int cas; scanf("%d", &cas); for (int i = 1; i <= cas; i++) { scanf("%s", str); int len = strlen(str); printf("Case %d: %s\n", i, sign[len % 2]); } return 0; }
解题思路:每次最多减(A - 1)/2.
#include#include #include using namespace std; typedef long long ll; ll A, B; int solve() { int ans = 0; while (A > B) { A = A - (A - 1) / 2; ans++; } return ans; } int main() { int cas; scanf("%d", &cas); for (int i = 1; i <= cas; i++) { cin >> A >> B; printf("Case %d: %d\n", i, solve()); } return 0; }
2151
#include#include const int N = 105; const char sign[2][N] = {"Fat brother", "Maze"}; int main () { int cas, l, r; char str[N]; scanf("%d", &cas); for (int i = 1; i <= cas; i++) { int ans = 0; scanf("%d%d", &r, &l); for (int j = 0; j < r; j++) { scanf("%s", str); for (int k = 0; k < l; k++) if (str[k] == 'O') ans++; } printf("Case %d: %s\n", i, sign[ans % 2]); } return 0; }