当前位置: 首页 > news >正文

Data Structures Fan(cf)

 考察异或运算以及前缀和

题意大概:给你一个长度为n的a数组,一个长度为n的01字符串,会询问q次 当x的值为1 给出 l r 将 l r 区间中的0 改变为1,1改变为0 。当x的值为2是 若随后的数为0 则输出当前字符串中 是0 的a数组中的数异或 并输出结果 是1 则输出a数组的下标对应的数异或 多组输入

输入样例 

5

5

1 2 3 4 5

01000

7

2 0

2 1

1 2 4

2 0

2 1

1 1 3

2 1

6

12 12 14 14 5 5

001001

3

2 1

1 2 4

2 1

4

7 7 7 777

1111

3

2 0

1 2 3

2 0

2

1000000000 996179179

11

1

2 1

5

1 42 20 47 7

00011

5

1 3 4

1 1 1

1 3 4

1 2 4

2 0

 

输出样例 

3 2 6 7 7 
11 7 
0 0 
16430827 
47 

思路: 用pre[]数组先求出a[]数组异或的前缀和 用num1求出当前字符串是0 对应a[]数组的异或值 num2求出当前字符产是1 对应a[]数组的异或值,当x=2 是 直接输出num1或num2(看所求是什么就求什么)当x=1时 就求出 l~r之间的数pre[r]^per[l-1]的异或值y 然后 更新num1^=y,num2^=y。(因为相同的数异或为0,0与任何数异或都是不改变原来的数)

例如 

5

1   2   3   4   5

1   3   0    4   1  当前异或的前缀和

0   1   0    0    0

若 l=2 r=4

则 y=pre[1]^pre[4]=a1^a1^a2^a3^a4   a1与a1异或为0 抵消了 故可以这样求出 l~r之间的异或值

此时 S变为  0       0  1  1   0

num1原来为  a1^a3^a4^a5 现在应为 a1^a2^a5

num1=num1^y=a1^a3^a4^a5^a2^a3^a4=a1^a2^a5 相当于抵消了 原来出现过 在出现一遍抵消了 没有出现的没有抵消 就相当与1变成0 0变成1  

#include<iostream>
#include<algorithm>
#include<cstring>
#include<vector>
using namespace std;
typedef long long ll;
const int N=5e5+10;
int a[N];
int pre[N];
vector<int>v;
int main()
{int t;cin>>t;while(t--){v.clear();int n;cin>>n;memset(a,0,sizeof a);memset(pre,0,sizeof pre);int num1=0,num2=0;for(int i=1;i<=n;i++) cin>>a[i];string s1,s;cin>>s1;s=" "+s1;for(int i=1;i<=n;i++){if(i==1) pre[i]=a[i];else pre[i]=pre[i-1]^a[i];if(s[i]=='0') num1^=a[i];else if(s[i]=='1') num2^=a[i];}int q;cin>>q;while(q--){int x;cin>>x;if(x==2){int num;cin>>num;if(num==0) v.push_back(num1);else v.push_back(num2);}else{int l,r;cin>>l>>r;int num=pre[r]^pre[l-1];num1^=num;num2^=num;}}for(int i=0;i<v.size();i++) cout<<v[i]<<" ";cout<<endl;}return 0;
}

 

相关文章:

Data Structures Fan(cf)

考察异或运算以及前缀和 题意大概&#xff1a;给你一个长度为n的a数组&#xff0c;一个长度为n的01字符串&#xff0c;会询问q次 当x的值为1 给出 l r 将 l r 区间中的0 改变为1&#xff0c;1改变为0 。当x的值为2是 若随后的数为0 则输出当前字符串中 是0 的a数组中的数异或 …...

BIOS < UEFI

Basic Input Output System &#xff08;BIOS&#xff09; Unified Extensible Firmware Interface &#xff08;UEFI&#xff09;...

微信最新更新隐私策略(2023-08-15)

1、manifest.json 配置修改 在mp-weixin: 参数修改&#xff08;没有就添加&#xff09; "__usePrivacyCheck__": true, ***2、注意 微信开发者工具调整 不然一直报错 找不到 getPrivacySetting 废话不多说 上代码 3、 编辑首页 或者用户授权界面 <uni-popup…...

Java中xml转javaBean

Java中xml转javaBean maven坐标 <dependency><groupId>com.fasterxml.jackson.dataformat</groupId><artifactId>jackson-dataformat-xml</artifactId><version>2.13.4</version></dependency>代码测试 import cn.hutool.js…...

Spring Boot集成JPA和ClickHouse数据库

简介 Spring Boot是一个用于创建独立的、基于Spring的应用程序的框架。它具有快速开发特性&#xff0c;可以大大减少开发人员的工作量。JPA&#xff08;Java Persistence API&#xff09;是Java中处理关系型数据库持久化的标准规范&#xff0c;而ClickHouse是一个高性能、分布…...

Hadoop生态圈中的Hive数据仓库技术

Hadoop生态圈中的Hive数据仓库技术 一、Hive数据仓库的基本概念二、Hive的架构组成三、Hive和数据库的区别四、Hive的安装部署五、Hive的基本使用六、Hive的元数据库的配置问题七、Hive的相关配置项八、Hive的基本使用方式1、Hive的命令行客户端的使用2、使用hiveserver2方法操…...

idea配置gitLab

前言&#xff1a;网上有很多类似的文章&#xff0c;但描述不够详细 步骤1&#xff1a;安装git 如果安装成功再次点击TEST按钮展示如下&#xff1a;git版本 步骤2&#xff1a;idea配置gitlab 查看当前项目管理的 远程仓库再git的地址&#xff0c;该地址可是gitLab的&#xff0…...

工程可以编译通过,但是Vscode依然有波浪线提示

前言 &#xff08;1&#xff09;我们在使用Vscode进行开发的时候&#xff0c;命名文件成功编译通过了&#xff0c;但是Vscode还是有波浪线的提示。 &#xff08;2&#xff09;其实成功编译通过就行&#xff0c;但是肯定还会存在一些强迫症患者&#xff0c;硬要消除这个报错。接…...

黑马JVM总结(二)

&#xff08;1&#xff09;栈 栈帧对应一次方法的调用&#xff0c;线程是要执行代码的&#xff0c;这些代码都是由一个个方法组成&#xff0c;线程运行的时候每个方法需要的内存叫做一个栈帧 &#xff08;2&#xff09;栈的演示 Frames&#xff1a;相当有栈 方法相当于栈帧…...

《Effective C++中文版,第三版》读书笔记7

条款41&#xff1a; 了解隐式接口和编译期多态 隐式接口&#xff1a; ​ 仅仅由一组有效表达式构成&#xff0c;表达式自身可能看起来很复杂&#xff0c;但它们要求的约束条件一般而言相当直接而明确。 显式接口&#xff1a; ​ 通常由函数的签名式&#xff08;也就是函数名…...

脚本:python实现动态爱心

文章目录 效果代码Reference python实现dynamic heart 效果 代码 import turtle as tu import random as ratu.setup(0.5, 0.5) # 设置画板大小&#xff08;小数表示比例&#xff0c;整数表示大小&#xff09; tu.screensize(1.0, 1.0) # 设置屏幕大小 tu.bgcolor(black) #…...

【李宏毅】深度学习6:机器学习任务攻略

如果在测试集上的效果不佳&#xff0c;应该要做什么&#xff1f;Optimization 如何选择&#xff1f;解决 overfitting 的方法&#xff1f; 测试集上的效果不佳 看训练数据的loss&#xff0c;是不是模型本身就没训练好&#xff1f; 问题&#xff1a;model 太简单了&#xff0c…...

如何使用SQL SERVER的OpenQuery

如何使用SQL SERVER的OpenQuery 一、OpenQuery使用说明二、 OpenQuery语法2.1 参数说明2.2注解 三、示例3.1 执行 SELECT 传递查询3.2 执行 UPDATE 传递查询3.3 执行 INSERT传递查询3.4 执行 DELETE 传递查询 一、OpenQuery使用说明 在指定的链接服务器上执行指定的传递查询。 …...

element-tree树结构-默认选中第一个节点高亮-根据id选中节点高亮

前言 tree树结构是在开发中经常使用的组件&#xff0c;比如区域树&#xff0c;楼层树&#xff0c;组织架构树&#xff0c;等等包含节点关系 实际开发可能需要我们一进到页面选中树形结构第一个节点&#xff0c;并且调用数据&#xff0c;来达到用户体验 在用户选择之后&#x…...

Python实操 PDF自动识别并提取Excel文件

最近几天&#xff0c;paddleOCR开发了新的功能&#xff0c;通过将图片中的表格提取出来&#xff0c;效果还不错&#xff0c;今天&#xff0c;作者按照步骤测试了一波。 首先&#xff0c;讲下这个工具是干什么用的&#xff1a;它的功能主要是针对一张完整的PDF图片&#xff0c;可…...

JVM监控和调优常用命令jps|jstat|jinfo|jmap|jhat|jstack实战

1.JVM监控和调优的主要目的 性能优化:通过JVM调优,可以提高Java应用程序的性能,减少响应时间,提高吞吐量,以更好地满足用户需求。性能优化可以加快应用程序的执行速度,减少延迟,提高用户体验。 内存管理:JVM负责管理Java应用程序的内存。正确的内存管理可以避免内存泄漏…...

chatglm2-6b在P40上做LORA微调 | 京东云技术团队

背景&#xff1a; 目前&#xff0c;大模型的技术应用已经遍地开花。最快的应用方式无非是利用自有垂直领域的数据进行模型微调。chatglm2-6b在国内开源的大模型上&#xff0c;效果比较突出。本文章分享的内容是用chatglm2-6b模型在集团EA的P40机器上进行垂直领域的LORA微调。 …...

WebGL 同时使用多幅纹理

目录 前言 ​编辑 示例代码 颜色矢量的分量乘法来计算两个纹素最终的片元颜色 注册事件响应函数&#xff1a;loadTexture&#xff08;&#xff09;&#xff0c;最后一个参数是纹理单元编号。 请求浏览器加载图像&#xff1a; 配置纹理&#xff1a;loadTexture&#xff0…...

探索云计算和大数据分析的崛起:API行业的机遇与挑战【电商大数据与电商API接入】

I. 引言 随着云计算和大数据分析技术的快速发展&#xff0c;企业和个人对数据分析和处理的需求不断增加。在这个信息爆炸的时代&#xff0c;数据已成为企业决策和战略规划的重要基础。云计算提供了强大的计算和存储能力&#xff0c;使得大规模数据的处理和分析变得更加容易和高…...

android studio通过wifi、无线连接设备

AndroidStudio无线wifi调试设备_android studio wifi_zwylovemzj的博客-CSDN博客 使用​​adbWireless​​工具&#xff0c;其能够让手机用无线来取代USB连接而使用ADB工具 1. 手机需要与电脑在同一局域网内 2. 把adbWireless安装到手机上&#xff0c;并开启&#xff0c;上面…...

SkyWalking 10.2.0 SWCK 配置过程

SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外&#xff0c;K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案&#xff0c;全安装在K8S群集中。 具体可参…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例&#xff1a;使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例&#xff1a;使用OpenAI GPT-3进…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)

0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述&#xff0c;后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作&#xff0c;其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1

每日一言 生活的美好&#xff0c;总是藏在那些你咬牙坚持的日子里。 硬件&#xff1a;OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写&#xff0c;"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...

ETLCloud可能遇到的问题有哪些?常见坑位解析

数据集成平台ETLCloud&#xff0c;主要用于支持数据的抽取&#xff08;Extract&#xff09;、转换&#xff08;Transform&#xff09;和加载&#xff08;Load&#xff09;过程。提供了一个简洁直观的界面&#xff0c;以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...

CMake 从 GitHub 下载第三方库并使用

有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?

在大数据处理领域&#xff0c;Hive 作为 Hadoop 生态中重要的数据仓库工具&#xff0c;其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式&#xff0c;很多开发者常常陷入选择困境。本文将从底…...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表

##鸿蒙核心技术##运动开发##Sensor Service Kit&#xff08;传感器服务&#xff09;# 前言 在运动类应用中&#xff0c;运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据&#xff0c;如配速、距离、卡路里消耗等&#xff0c;用户可以更清晰…...

搭建DNS域名解析服务器(正向解析资源文件)

正向解析资源文件 1&#xff09;准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2&#xff09;服务端安装软件&#xff1a;bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...

Redis:现代应用开发的高效内存数据存储利器

一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发&#xff0c;其初衷是为了满足他自己的一个项目需求&#xff0c;即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源&#xff0c;Redis凭借其简单易用、…...