蓝桥杯每日一题2023.9.21

news2024/11/27 18:36:13

蓝桥杯2021年第十二届省赛真题-异或数列 - C语言网 (dotcpp.com)

题目描述

Alice 和 Bob 正在玩一个异或数列的游戏。初始时,Alice 和 Bob 分别有一个整数 a 和 b,有一个给定的长度为 n 的公共数列 X1, X2, · · · , Xn。
Alice 和 Bob 轮流操作,Alice 先手,每步可以在以下两种选项中选一种:
选项 1:从数列中选一个 Xi 给 Alice 的数异或上,或者说令 a 变为 a ⊕ Xi。(其中 ⊕ 表示按位异或)
选项 2:从数列中选一个 Xi 给 Bob 的数异或上,或者说令 b 变为 b ⊕ Xi。
每个数 Xi 都只能用一次,当所有 Xi 均被使用后(n 轮后)游戏结束。游戏结束时,拥有的数比较大的一方获胜,如果双方数值相同,即为平手。
现在双方都足够聪明,都采用最优策略,请问谁能获胜?

分析

分析可知a ^ b = x1 ^ x2 ^ ... ^ xn

从高位向低位看,如果a,b两数相同则异或结果为0,如果a,b两数不同则异或结果为1,最先找到是1的那一方选手获胜。

两人是任意选择异或的数,也就是谁能得到最后一个1谁就可以获胜,eg1.如果现在a的值为0,b的值为0,现在A可以拿到最后一个1,a可以变为1,而b为0,A获胜。 eg2.如果现在a的值为1,b的值为1,A拿到最后一个1,可以将b的值变为0,此时A获胜。

 如果x == 1,那么先手必胜A必胜

如果x > 1, 如果y为偶数,A必胜(A先拿随意给人,每次和B对称拿,最后A一定拿最后一个1

                 如果y为奇数,B必胜(因为第一轮AB都拿变成偶数个0和偶数个1,此时A先拿,B总能                   拿到最后一个1)

#include<bits/stdc++.h>
using namespace std;
const int N = 22;
int t, n, x, sum;
int main()
{
	cin >> t;
	while(t --)
	{
		cin >> n;
		sum = 0;
		int cnt[N] = {0};
		for(int i = 1; i <= n; i ++)
		{
			cin >> x;
			sum ^= x;
			for(int j = 0; j < N; j ++)
			{
				cnt[j] += x >> j & 1;//将每一位是1的数取出,此位上1的个数+1 
			}
		}
		if(!sum)cout << 0 << '\n';
		else
		{
			for(int i = N - 1; i >= 0; i --)
			{
				if(sum >> i & 1)
				{
					if(cnt[i] == 1)cout << 1 << '\n';
					else if((n - cnt[i]) % 2 == 0)cout << 1 << '\n';
					else cout << -1 << '\n';
					break;
				}
			}
		}
	}
	return 0;	
} 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1028726.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

安科瑞为工业能效提升行动计划提供EMS解决方案-安科瑞黄安南

摘要: 2022年6月29日工信部、发改委、财政部、生态环境部、国资委、市场监管总局六部门联合下发《关于印发工业能效提升行动计划的通知》&#xff08;工信部联节〔2022〕76号&#xff0c;以下简称《行动计划》&#xff09;&#xff0c;主要目的是为了提高工业领域能源利用效率&…

共享门店:一种创新的商业模式

你是否想过&#xff0c;如果你的门店可以和你的客户、好友、合作伙伴共享经营权和收益权&#xff0c;你的门店会有多大的发展空间和盈利能力&#xff1f;你是否想过&#xff0c;如果你的门店可以利用互联网、人工智能、物联网等先进技术&#xff0c;你的门店会有多高的效率和竞…

MySQL 学习笔记(基础)

首先解释数据库DataBase&#xff08;DB&#xff09;&#xff1a;即存储数据的仓库&#xff0c;数据经过有组织的存储 数据库管理系统DataBase Management System&#xff08;DBMS&#xff09;&#xff1a;管理数据库的软件 SQL&#xff08;Structured Query Language&#xf…

GIT使用需知,哪些操作会导致本地代码变动

系列文章目录 手把手教你安装Git&#xff0c;萌新迈向专业的必备一步 GIT命令只会抄却不理解&#xff1f;看完原理才能事半功倍&#xff01; 常用GIT命令详解&#xff0c;手把手让你登堂入室 GIT实战篇&#xff0c;教你如何使用GIT可视化工具 GIT使用需知&#xff0c;哪些操作…

手机全自动无人直播系统,成为商家实景无人直播带货好帮手!

商家手机无人直播系统最近太火爆了&#xff0c;那么&#xff0c;这个产品究竟是什么呢&#xff1f;全自动无人直播系统是一款手机自动直播软件&#xff0c;目地在于帮助广大商家和企业实现无人直播卖货&#xff0c;从而解放双手、降低人工干预的需求。 当然&#xff0c;无人直播…

ModStartCMS v7.3.0 富文本MP3支持,后台组件优化

ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用&#xff0c;支持后台一键快速安装&#xff0c;让开发者能快的实现业务功能开发。 系统完全开源&#xff0c;基于 Apache 2.0 开源协议&#xff0c;免费且不限制商业使用。 功能特性 丰富的模块市…

抗锯齿的线

抗锯齿的线 右下角的时候h是0,到顶部 h是1&#xff0c;然后中间y相距4个像素&#xff0c;那dy就是0.25 如果让h abs(fract(h - 0.5) - 0.5) 中间一行0.5&#xff0c;第一行 第三行都是0.25&#xff0c;两端都是0 根据插值来看 这里是 如果用h/dy 那么第一行以上&#xff0…

机器学习入门教学——损失函数(极大似然估计法)

1、前言 我们在训练神经网络时&#xff0c;最常用到的方法就是梯度下降法。在了解梯度下降法前&#xff0c;我们需要了解什么是损失(代价)函数。所谓求的梯度&#xff0c;就是损失函数的梯度。如果不知道什么是梯度下降的&#xff0c;可以看一下这篇文章&#xff1a;机器学习入…

黑马JVM总结(十八)

&#xff08;1&#xff09;G1_FullGC的概念辨析 SerialGC&#xff1a;串行的&#xff0c;ParallelGC&#xff1a;并行的 &#xff0c;CMS和G1都是并发的 这几种垃圾回收器的新生代回收机制时相同的&#xff0c;SerialGC和ParalledGC&#xff1a;老年代内存不足触发的叫FullGC…

【redis总结】

文章目录 1、redis简介2、为什么要选择redis做缓存3、数据结构4、redis多线程模型redis6.0的变化 5、redis持久化AOF的实现过程RDB的实现过程 6、redis集群的搭建7、 redis过期删除和淘汰策略8、redis的内存淘汰策略 1、redis简介 Redis&#xff08;Remote Dictionary Server&…

Xcode 15 运行<iOS 14, 启动崩溃问题

如题. Xcode 15 启动 < iOS 14(没具体验证过, 我的问题设备是iOS 13.7)真机设备 出现启动崩溃 解决方案: Build Settings -> Other Linker Flags -> Add -> -ld64

【JavaEE】多线程案例-线程池

文章目录 1. 什么是线程池2. 为什么要使用线程池&#xff08;线程池有什么优点&#xff09;3. 如何使用Java标准库提供的线程池3.1 创建一个线程池对象3.2 什么是工厂模式3.3 为什么要使用工厂模式3.4 Executors 创建不同具有不同特性的线程池3.5 ThreadPool 类的构造方法3.6 线…

Linux系统100条命令:关于Ubuntu和 CentOS 7 相同功能的不同的终端操作命令

安装软件包&#xff1a; Ubuntu&#xff1a;apt-get install package_name CentOS 7&#xff1a;yum install package_name 更新软件包列表&#xff1a; Ubuntu&#xff1a;apt-get update CentOS 7&#xff1a;yum update 卸载软件包&#xff1a; Ubuntu&#xff1a;apt-…

vue网页缓存页面与不缓存页面处理

在主路由页面 <template><div style"height: 100%"><!-- 缓存 --><keep-alive><router-view v-if"$route.meta.keepAlive"></router-view></keep-alive><!-- 不缓存 --><router-view v-if"!$rou…

函数模板的概念和意义

问题 C 中有几种交换变量的方法&#xff1f; 交换变量的方法 定义宏代码块 优点&#xff1a;代码复用&#xff0c;适合所有类型缺点&#xff1a;编译器不知道宏的存在&#xff0c;缺少类型检查 定义函数 优点&#xff1a;真正的函数调用&#xff0c;编译器对类型进行检查缺…

使用@Builder注解后,该对象 拷贝时出现java.lang.InstantiationException异常报错

报错信息&#xff1a; 2023-09-21T16:02:00.83308:00 ERROR 23220 --- [nio-8080-exec-1] i.global.iot.common.utils.ConvertUtils : convert error java.lang.InstantiationException: io.global.iot.common.modules.dto.ZyOrderDTOat java.base/java.lang.Class.newInsta…

【计算机网络】IP协议第二讲(Mac帧、IP地址、碰撞检测、ARP协议介绍)

IP协议第二讲 1.IP和Mac帧2.碰撞检测2.1介绍2.2如何减少碰撞发生2.3MTU2.4一些补充 3.ARP协议3.1协议介绍3.2报文格式分析 1.IP和Mac帧 IP&#xff08;Internet Protocol&#xff09;和MAC&#xff08;Media Access Control&#xff09;帧是计算机网络中两个不同层次的概念&am…

前端Vue3+element-plus表单输入框实现Cron表达式校验

页面如下&#xff1a; 本来想手写正则表达式校验&#xff0c;结果发现很麻烦&#xff0c;cron表达式组成如下&#xff1a; 开发使用框架为vue3element-plus&#xff0c;于是选择cron-validator依赖。使用步骤如下&#xff1a; 1、通过npm install cron-validator命令安装&…

如何在Ubuntu系统部署RabbitMQ服务器并公网访问【内网穿透】

文章目录 前言1.安装erlang 语言2.安装rabbitMQ3. 内网穿透3.1 安装cpolar内网穿透(支持一键自动安装脚本)3.2 创建HTTP隧道 4. 公网远程连接5.固定公网TCP地址5.1 保留一个固定的公网TCP端口地址5.2 配置固定公网TCP端口地址 前言 RabbitMQ是一个在 AMQP(高级消息队列协议)基…

Linux 中的make/makefile

一&#xff1a;背景 make是一个命令工具&#xff0c;是一个解释makefifile中指令的命令工具&#xff0c;一般来说&#xff0c;大多数的IDE都有这个命令&#xff0c;比如&#xff1a;Delphi的make&#xff0c;Visual C的nmake&#xff0c;Linux下GNU的make。可见&#xff0c;mak…