This way

题意:

第一个人有一个数x,第二个人有一个数x+3。给你长度为n的数组a,他们俩从左到右依次遍历a[i],并且每次可以选择两个操作中的一个:
1.手上的数+=a[i]
2.手上的数^=a[i]
最终要使得手上的数=y,并且有且仅有一个人能够做到,问你这个人是谁。

题解:

一开始看到完全无从下手,首先我对于博弈本来就菜的一批,换成搜索或者dp感觉有点超出这道题的难度了,而且一下子也不知道怎么办。

此时这个+3吸引了我的注意,+3意味着这俩人不同奇偶,并且1和2操作无论怎么做都会改变手上值的奇偶性,于是解题思路就出来了:
如果x^a[1]^a[2]^…^a[n]^y是偶数的话,那么就是Alice,否则是Bob。
也就是说我们根本不需要去求出具体的过程,很多题目都不需要自己自作多情将一些不需要的因素考虑进去。

#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int N=1e5+5;
int main()
{int t;scanf("%d",&t);while(t--){ll n,x,y,a;int f=0;scanf("%lld%lld%lld",&n,&x,&y);for(int i=1;i<=n;i++)scanf("%lld",&a),f^=a%2;int odd=(x%2)^(y%2);if(odd==f)printf("Alice\n");else printf("Bob\n");}return 0;
}

Codeforces 1634 B. Fortune Telling —— 简单思维,奇偶性相关推荐

  1. B - Fortune Telling 「奇偶性」「思维」

    B. Fortune Telling 题目描述: 两个人玩游戏,有一个数组,长度为n,n<=1e5,A初始值为x,B初始值为X+3 对于数组的每个元素a[i],有如下两种操作 加上a[i] 异或 ...

  2. B.Fortune Telling Codeforces Round #770 (Div. 2)

    题目链接:Fortune Telling 题解:由于x+y的奇偶性等于x^y的奇偶性,即只需要判断x+sum和y的奇偶性 #include<bits/stdc++.h> using nam ...

  3. CodeForces - 1030C Vasya and Golden Ticket(思维)

    题目链接:点击查看 题目大意:给定长度为n的字符串,字符串全部由0~9的数字组成,要求将字符串划分为连续的子字符串,要求每个子字符串的和都要相等,问给定字符串能否成功划分 题目分析:简单思维,因为划分 ...

  4. Java简单思维导图

    Java简单思维导图 Java 集合:List, Map, Tree 多线程:工具,锁 IO:BIO,NIO,AIO,Netty 设计模式 单例,简单工程,工厂,抽象工厂 build,装饰,obser ...

  5. Codeforces 1634 A. Reverse and Concatenate —— 简单思维

    This way 题意: 给你一个字符串s,设res(s)为s头尾翻转. 有k次操作,每次可以让s=s+res(s)或者s=res(s)+s. 问你最终由几种本质不同的字符串. 题解: 差点掏出kmp ...

  6. Codeforces 1634 C. OKEA ——简单思维

    This way 题意: 给你一个n*k的矩形,你要在每个格子里面填一个数,数的范围是[1,n*k]并且每个数只能用一次,并且对于任意的i,l,r: m e a n ( a [ i ] [ l : r ...

  7. Codeforces Round #770 (Div. 2) Problem B.Fortune Telling

    题意: 给定两个数,Alice的数x, Bob的数 x + 3,和一个长度为n的数组a,x和x + 3都要和a的每一个数执行 "加法" 或 "异或" 两个操作的 ...

  8. Codeforces Round #770 (Div. 2) B. Fortune Telling

    题目链接:点击跳转 题意: 有一个长度为n的数组a,对于数组中的每个数,有两种操作方法,1.x + a, 2. x ^ a(^为异或符),Alice开始拥有的数为x,Bob拥有的数为x+3,每个人必须 ...

  9. codeforces 770 div2 B. Fortune Telling

    题意:给定初值ddd ,以及数组,对于数组的每个数,要么加法要么异或,问ddd能否变成给定的数yyy,如果能则Alice赢否则Bob赢 分析: 加法和异或运算在二进制下对于数字最后一位效果是一样的,因 ...

最新文章

  1. js获取前后几天或者前后几个月的日期
  2. 在活动目录中,转移和占用操作主机角色(占用)
  3. Linux查看文件夹大小的命令
  4. [LUOGU] 1090 合并果子
  5. 【颜值打分小程序】最火爆的“颜值测试”,做还是不做?(疯狂打call)
  6. jquery easyui dataGrid动态改变排序字段名
  7. 深圳出差 第二天【原创】
  8. Apache Dubbo是一款高性能Java RPC框架。
  9. Incorrect username or password (access token)
  10. Linux下 mysql5.7的彻底卸载
  11. QQ/微信表情代码表
  12. Windows11 家庭版开启远程桌面解决方案之RDP Wrapper Library,小白全面攻略
  13. get与navigate方法
  14. 欢迎页面welcome.jsp
  15. Qt creator学习笔记(一)认识Qt
  16. 你喜欢最华为手机哪一点?网友评论亮了
  17. 根据GEOHASH,查找附近的人,判断距离远
  18. 智能秤方案设计——蓝牙体脂秤PCBA方案
  19. springBoot 项目自定义命名application.properties配置文件名称
  20. bastion host - 堡垒主机 / 跳板机

热门文章

  1. 2019icpc上海站总结
  2. 此生不戒多巴胺-冲刺日志(第五天)
  3. 邀请别人进入队伍rust_rust怎么和好友一起 | 手游网游页游攻略大全
  4. 华为云大数据存储的冗余方式是三副本_大数据显示华为云DDS增强版实感卓越
  5. 第六篇 串口(应用篇)- WIFI模块和4G模块
  6. Projected gradient descent
  7. 8项技能9种武器 打造企业增长黑客
  8. 解决无法定位程序输入点_ZdlPvj | This application failed to start because it could notfind or load the Qt platfo
  9. nucleo stlink 固件_【NUCLEO-F412ZG试用体验】3.把stlink V2.1的虚拟串口用起来!
  10. JavaWeb作品(steam)