UVA 11859 - Division Game(Nim游戏)
2014-07-16 11:35
337 查看
UVA 11859 - Division Game
题目链接题意:给定一个矩阵,每次能选一行中几个数字,把他们变成他们的因子,最后不能变的人输,问是否能先手必胜
思路:转变成因子等价于删去一些素数,这样问题转化为了Nim游戏
代码:
#include <stdio.h> #include <string.h> const int N = 10005; int t, n, m, num, cnt , vis , prime , pn = 0; int main() { for (int i = 2; i < N; i++) { if (vis[i]) continue; prime[pn++] = i; for (int j = i; j < N; j += i) { vis[j] = 1; } } for (int i = 2; i < N; i++) { int num = i; for (int j = 0; j < pn && prime[j] <= i; j++) { while (num % prime[j] == 0) { cnt[i]++; num /= prime[j]; } } } int cas = 0; scanf("%d", &t); while (t--) { int ans = 0; scanf("%d%d", &n, &m); for (int i = 0; i < n; i++) { int sum = 0; for (int j = 0; j < m; j++) { scanf("%d", &num); sum += cnt[num]; } ans ^= sum; } printf("Case #%d: %s\n", ++cas, ans == 0?"NO":"YES"); } return 0; }
相关文章推荐
- UVA 11859 - Division Game(Nim游戏)
- UVa 11859 (Nim) Division Game
- uva 11859 - Division Game(Nim)
- UVa 11859 除法游戏(Nim游戏,质因子)
- UVA 11859 Division Game (Nim博弈)
- UVA 11859 Division Game[Nim游戏]
- UVA 11859 - Division Game (SG博弈)
- uva 11859 Division Game
- Division Game UVA - 11859 (Nim)题解
- uva11859 Division Game
- uva 1482 - Playing With Stones(Nim游戏)
- UVA - 11859 Division Game
- UVA 11859 - Division Game
- UVA 11859 - Division Game
- hdu2176取(m堆)石子游戏 ——Nim 博弈
- Nim游戏博弈(收集完全版)
- 《编程之美》读书笔记06: 1.13 NIM(3)两堆石头的游戏
- hdu5011(Nim游戏变形+证明)
- Nim取子游戏
- USTCOJ 1213 取石子游戏 (经典NIM问题)及一些扩展 与(&) 或 (|)异或 (^)运算性质