【洛谷P1288】取数游戏II】的更多相关文章

洛谷P1288 取数游戏II 先手必胜的条件需要满足如下中至少 \(1\) 条: 从初始位置向左走到第一个 \(0\) 的位置,经过边的数目为偶数(包含 \(0\) 这条边). 从初始位置向右走到第一个 \(0\) 的位置,经过边的数目为偶数(包含 \(0\) 这条边). 否则先手必败. #include<stdio.h> #include<string.h> using namespace std; const int maxn = 25; int a[maxn], n, ans…
题目描述 有一个取数的游戏.初始时,给出一个环,环上的每条边上都有一个非负整数.这些整数中至少有一个0.然后,将一枚硬币放在环上的一个节点上.两个玩家就是以这个放硬币的节点为起点开始这个游戏,两人轮流取数,取数的规则如下: (1)选择硬币左边或者右边的一条边,并且边上的数非0: (2)将这条边上的数减至任意一个非负整数(至少要有所减小): (3)将硬币移至边的另一端. 如果轮到一个玩家走,这时硬币左右两边的边上的数值都是0,那么这个玩家就输了. 如下图,描述的是Alice和Bob两人的对弈过程,…
题目描述 有一个取数的游戏.初始时,给出一个环,环上的每条边上都有一个非负整数.这些整数中至少有一个0.然后,将一枚硬币放在环上的一个节点上.两个玩家就是以这个放硬币的节点为起点开始这个游戏,两人轮流取数,取数的规则如下: (1)选择硬币左边或者右边的一条边,并且边上的数非0: (2)将这条边上的数减至任意一个非负整数(至少要有所减小): (3)将硬币移至边的另一端. 如果轮到一个玩家走,这时硬币左右两边的边上的数值都是0,那么这个玩家就输了. 如下图,描述的是Alice和Bob两人的对弈过程,…
题目链接:https://www.luogu.org/problem/P1288 首先,如果你的一边的边是 \(0\) ,那么你肯定走另一边. 那么你走另一边绝对不能让这条边有剩余,因为这条边有剩余的话队首再走回来并去掉所有的值那么你就输了. 因为大家都绝对聪明,所以会选择将走过的边全部取完. 那么现在就面临着一个问题,你一开始要么往左走,要么往右走. 所以需要记录一下往左走的边数和往右走的边数,只要有一条路的边数是奇数,则先手赢:如果两条边都是偶数,则奇数赢. 实现代码如下: #include…
奇奇怪怪的游戏,不多写了 #include<cstdio> ]; int main() { int i; scanf("%d",&n); ;i<=n;i++) scanf("%d",&a[i]); ;l1<=n;l1++) ) break; ;r1--) ) break; l1--; r1++; r1=n-r1+; if(l1==n) { ==) puts("YES"); else puts("N…
原题链接 因为保证有\(0\)权边,所以整个游戏实际上就是两条链. 很容易发现当先手距离\(0\)权边有奇数条边,那么必胜. 策略为:每次都将边上权值取光,逼迫后手向\(0\)权边靠拢.若此时后手不取光边权,那么先手只需把后手没有取光的边取光,即把硬币移回去就能让后手五路可走:若后手也取光边权,那么先手只需继续取光边权即可,后手必定会到达\(0\)权边的起点,无路可走. 反之,若先手距离\(0\)边权有偶数条边,那么必输. 因为无论先手怎么走,都会使得后手距离\(0\)权边有奇数条边,即后手有必…
题目 博弈论. 考虑先手和后手的关系.然后可以通过统计数值不是0的数的个数来得出答案. \(Code\) #include <bits/stdc++.h> using namespace std; int main() { int n, ans = 0, a[1010]; scanf("%d", &n); for (int i = 1; i <= n; i++) { scanf("%d", &a[i]); if (a[i] == 0…
P1123 取数游戏 题目描述 一个N×M的由非负整数构成的数字矩阵,你需要在其中取出若干个数字,使得取出的任意两个数字不相邻(若一个数字在另外一个数字相邻8个格子中的一个即认为这两个数字相邻),求取出数字和最大是多少. 输入输出格式 输入格式: 输入第1行有一个正整数T,表示了有T组数据. 对于每一组数据,第1行有两个正整数N和M,表示了数字矩阵为N行M列. 接下来N行,每行M个非负整数,描述了这个数字矩阵. 输出格式: 输出包含T行,每行一个非负整数,输出所求得的答案. 输入输出样例 输入样…
题目链接:https://www.luogu.org/problemnew/show/P1123 转载于:>>>>>> 题目描述 一个N×M的由非负整数构成的数字矩阵,你需要在其中取出若干个数字,使得取出的任意两个数字不相邻(若一个数字在另外一个数字相邻8个格子中的一个即认为这两个数字相邻),求取出数字和最大是多少. 输入格式: 输入第1行有一个正整数T,表示了有T组数据. 对于每一组数据,第1行有两个正整数N和M,表示了数字矩阵为N行M列. 接下来N行,每行M个非负整…
题目描述 一个N×M的由非负整数构成的数字矩阵,你需要在其中取出若干个数字,使得取出的任意两个数字不相邻(若一个数字在另外一个数字相邻8个格子中的一个即认为这两个数字相邻),求取出数字和最大是多少. 输入输出格式 输入格式: 输入第1行有一个正整数T,表示了有T组数据. 对于每一组数据,第1行有两个正整数N和M,表示了数字矩阵为N行M列. 接下来N行,每行M个非负整数,描述了这个数字矩阵. 输出格式: 输出包含T行,每行一个非负整数,输出所求得的答案. 输入输出样例 输入样例#1: 3 4 4…