2023牛客暑期多校训练营5-I The Yakumo Family

news2024/11/15 17:27:41

2023牛客暑期多校训练营5-I The Yakumo Family

https://ac.nowcoder.com/acm/contest/57359/I

文章目录

  • 2023牛客暑期多校训练营5-I The Yakumo Family
    • 题意
    • 解题思路
    • 代码

题意

在这里插入图片描述

解题思路

考虑将序列拆位计算。

先考虑一个简化版本,求:
∑ 1 ≤ l 1 ≤ r 1 ≤ n X O R ( l 1 , r 1 ) \sum_{1\le l_1\le r_1\le n}XOR(l_1,r_1) 1l1r1nXOR(l1,r1)

先对序列 a a a取前缀异或 b b b,对于固定的点 r r r,一个区间 X O R ( l , r ) XOR(l_,r) XOR(l,r),其某一位是否有贡献取决于 b l − 1 ⊕ b r b_{l-1}\oplus b_r bl1br在这一位上是否为 1 1 1,若是,则这一位的贡献加一。对于每一位,我们可以根据 r 1 r_1 r1的后移,统计 1 / 0 1/0 1/0的个数, O ( 1 ) O(1) O(1)计算这一位 ∑ 1 ≤ l 1 ≤ r 1 X O R ( l 1 , r 1 ) \sum _{1\le l_1\le r_1}XOR(l_1,r_1) 1l1r1XOR(l1,r1),设为 p r 1 p_{r_1} pr1。最后求取前缀和,得 s n s_n sn即为答案。

对于如下问题:
∑ 1 ≤ l 1 ≤ r 1 ≤ n ∑ r 1 < l 2 ≤ r 2 ≤ n X O R ( l 1 , r 1 ) × X O R ( l 2 , r 2 ) \sum_{1\le l_1\le r_1\le n}\sum_{r_1<l_2\le r_2\le n}XOR(l_1,r_1)\times XOR(l_2,r_2) 1l1r1nr1<l2r2nXOR(l1,r1)×XOR(l2,r2)
对于每个固定的 r 2 r_2 r2,一个区间 [ l 2 , r 2 ] [l_2,r_2] [l2,r2]的贡献同样可由上述方法求得,不同的是其对每一位的贡献为之前求得的 s l 2 − 1 s_{l_{2}-1} sl21,即 r 1 r_1 r1 [ 1 , l 2 − 1 ] [1,l_2-1] [1,l21]区间的总贡献。再求取一遍前缀和,可得答案。

k k k个不相交的区间,只需重复求取 k k k次,即可得答案。

代码

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=2e5+5,mod=998244353;
ll n,f[N],s[N],a[N];
ll t[N];
int main(){
	cin>>n;
	for(int i=1;i<=n;i++)cin>>f[i],t[i]=1,s[i]=s[i-1]^f[i];
	t[0]=1;
	for(int w=1;w<=3;w++){
		for(int j=0;j<=30;++j){
			ll p[2];
			p[0]=t[0],p[1]=0;
			for(int i=1;i<=n;++i){
				int g=(s[i]>>j)&1;
				a[i]=(a[i]+(p[g^1]<<j)%mod)%mod;
				p[g]+=t[i];
				p[g]%=mod;	
			}
		}
		t[0]=0;
		for(int i=1;i<=n;i++)t[i]=(t[i-1]+a[i])%mod,a[i]=0;
	}
	cout<<t[n];
}

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

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

相关文章

新闻标题文本分类任务

目录 知识回顾使用debug调试 知识回顾 预处理内容 文本主要进行清洗、分词/分字 ID替换(不希望计算机看到文字&#xff0c;而是ID)&#xff0c;通过语料表来表示&#xff0c;根据频率高低来分配ID号 文本的ID映射到文本的一个特征向量&#xff0c;进行词嵌入(Embedding)&…

【docker】Windows11系统下安装并配置阿里云镜像加速

【docker】Windows11系统下安装并配置阿里云镜像加速 提示:博主取舍了很多大佬的博文并亲测有效,分享笔记邀大家共同学习讨论 文章目录 【docker】Windows11系统下安装并配置阿里云镜像加速一、查看Windows环境是否支持docker二、 启动Hyper-V三、 官网下载安装Docker应用和数据…

VIOOVI分享:什么是丰田精益生产方式?丰田精益生产方式有哪些?

作为全球知名的汽车生产企业&#xff0c;日本丰田在行业的影响力巨大。而其企业运营模式&#xff0c;也广为经营领域热议&#xff0c;其中&#xff0c;大家对丰田精益生产方式一直都是津津乐道。那么什么是丰田精益生产方式&#xff1f;以下内容为您全面解析。 丰田精益化生产模…

数据结构 | 线性数据结构——双端队列

目录 一、何谓双端队列 二、双端队列抽象数据类型 三、用Python实现双端队列 四、回文检测器 一、何谓双端队列 双端队列是与队列类似的有序集合。它有一前、一后两端&#xff0c;元素在其中保持自己的位置。与队列不同的是&#xff0c;双端队列对在哪一端添加和移除元素没…

Linux - 进程控制(进程等待)

进程等待必要性 之前讲过&#xff0c;子进程退出&#xff0c;父进程如果不管不顾&#xff0c;就可能造成‘僵尸进程’的问题&#xff0c;进而造成内存泄漏。 另外&#xff0c;进程一旦变成僵尸状态&#xff0c;那就刀枪不入&#xff0c;“杀人不眨眼”的kill -9 也无能为力&…

Activiti 深入理解:Activiti 流程引擎的 25 张数据库表都存储了什么?ing

1. Activiti 数据库表名说明&#xff08;分类与说明&#xff09; https://www.activiti.org/userguide/#database.tables.explained \qquad Activiti 的数据库表名称都以 ACT_ 开头&#xff0c;而第二部分是表 use case 的双字符标识&#xff0c;use case 也大致与 Activiti 服…

Vue3中使用事件总线Bus的两种方式(mitt)

首先咱们得先下载mitt指令如下&#xff1a; npm i mitt --save 接下来介绍Vue3中通过mitt使用事件总线的两种方式 方式一&#xff1a; 该方式为全局挂载mitt,个人感觉有点繁琐&#xff0c;不太推荐 创建&#xff1a; 1.首先找到你的main.js或main.ts文件 2.引入mitt 3.…

MIT 6.S081 Lab Nine --- file system

MIT 6.S081 Lab Nine --- file system 引言File systemLarge files(moderate)预备看什么你的工作代码解析 Symbolic links(moderate)硬链接代码解析 可选的挑战练习 引言 本文为 MIT 6.S081 2020 操作系统 实验九解析。 MIT 6.S081课程前置基础参考: 基于RISC-V搭建操作系统系…

pc文件上传

1.代码&#xff1a; <template><div><el-upload:multiple"true":auto-upload"true":headers"headers":action"uploadFileUrl":before-upload"handleBeforeUpload":on-error"handleUploadError":o…

MB21 手工创建261生产订单的预留

1、前面博文中有说到新增了工单超领的移动类型Z61,我们在创建新的移动类型的时候参考的是261的移动类型。本质上Z61的配置和261也是一样的。 2、我们在MB21创建预留的时候就会遇到问题 这里系统给出了提示:不能手工创建该类型的预留。 3、SE38对程序进行修改,根据报错的信…

BES IIR EQ音效设计原理

+我V hezkz17进数字音频系统研究开发交流答疑群(课题组) BES EQ音效集成流程 1 BES 音效调试工具 audiotool_v3.5 2 EQ音效参数生成 电声学工程师根据听音效果,生成参数,一般通过截图给的软件这边。 EQ参数四元组:{ IIR滤波器类型,Gain增益,f中心频率,Q品质因数 }

0801|IO进程线程day4【stat获取文件属性】

目录 1 获取文件属性 1&#xff09;stat 2&#xff09;提取文件的权限 3&#xff09;提取文件的类型 4&#xff09;提取文件所属用户名【getpwuid函数】 5&#xff09;提取文件所属组用户名【getgrgid函数】 6&#xff09;完整代码&#xff1a; 1 获取文件属性 1&#x…

error: #5: cannot open source input file “core_cmInstr.h“

GD32F103VET6和STM32F103VET6引脚兼容。 GD32F103VET6工程模板需要包含头文件&#xff1a;core_cmInstr.h和core_cmFunc.h&#xff0c;这个和STM32F103还是有区别的&#xff0c;否则会报错&#xff0c;如下&#xff1a; error: #5: cannot open source input file "core…

AI 3D结构光技术加持,小米引领智能门锁新标准

一直以来&#xff0c;小米智能门锁系列产品让更多家庭走进了安全便捷的智能生活&#xff0c;安全至上的设计让很多家庭都轻松告别了随身钥匙。 7月27日&#xff0c;小米正式推出小米智能门锁M20 Pro&#xff0c;再一次引领智能门锁产品的发展潮流。该款门锁采用AI 3D结构光技术…

算法竞赛入门【码蹄集新手村600题】(MT1080-1100)

算法竞赛入门【码蹄集新手村600题】(MT1080-1100&#xff09; 目录MT1081 xy的和MT1082 x-y的和MT1083 向下取整MT1084 k次方根MT1085 分期付款MT1086 公里转换为米MT1087 温度转换MT1088 温度对照MT1089 整理玩具MT1090 卡罗尔序列MT1091 合并||MT1092 非常大的NMT1093 序列MT…

C语言每日一题:10.不使用+-*/实现加法+找到所有数组中消失的数。

题目一&#xff1a; 题目链接&#xff1a; 思路一&#xff1a; 1.两个数二进制之间进行异或如果不产生进位操作那么两个数的和就是就是两个数进行异或的结果。 举例&#xff1a;5&#xff08;0101&#xff09;2&#xff08;0010&#xff09;进行异或等于&#xff1a;7&#xf…

Jmeter —— jmeter接口自动化测试操作流程

在企业使用jmeter开展实际的接口自动化测试工具&#xff0c;建议按如下操作流程&#xff0c; 可以使整个接口测试过程更规范&#xff0c;更有效。 接口自动化的流程&#xff1a; 1、获取到接口文档&#xff1a;swagger、word、excel ... 2、熟悉接口文档然后设计测试用例&am…

2023年华数杯建模思路 - 案例:最短时间生产计划安排

文章目录 0 赛题思路1 模型描述2 实例2.1 问题描述2.2 数学模型2.2.1 模型流程2.2.2 符号约定2.2.3 求解模型 2.3 相关代码2.4 模型求解结果 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; 最短时间生产计划模型 该模型出现在好几个竞赛赛题上&#x…

多人任务管理,如何做好任务管理,任务管理软件

任务管理&#xff0c;简单易懂&#xff0c;就是对任务进行管理。那怎么可以更好进行任务管理呢&#xff1f;怎么样样可以让任务进度可视化&#xff0c;一目了然呢&#xff1f;有效的管理可以让我们事半功倍。 接下来我们看一下如何借助任务管理软件高效的做任务管理。 首先创…

python dataframe a.combine_first(temp) # 一张表的缺失值用另一张表填充

将a的索引和temp的索引设置为一样&#xff0c;再进行缺失值填充&#xff0c;combine_first会对所有同名的column进行填充。 a.combine_first(temp)