数据结构 elegant_sequence(优雅的序列)
数据结构 elegant_sequence(优雅的序列)
问题描述
如果一个序列的元素的异或和等于 1,我们称这个序列为优雅的序列。现在
给你一个 01 序列,和 m 次询问。对于每次询问,给出 l,r。请你输出子序列 a[l..r]
的异或和。
★数据输入
输入第一行为正整数 n, m。
第二行为 n 个正整数 a[1..n]。 (1<=ai<=10^9)
接下来的 m 行,每行两个数 l,r。 (1<=l<=r<=n)
80%的数据 1<=n,m<=1000.
100%的数据 1<=n,m<=100000.
★数据输出
输出 m 行,每行一个数表示 a[l…r]的异或和。
| 输入示例 | 输出示例 |
| 3 6 1 1 0 1 1 1 2 1 3 2 2 2 3 3 3 |
1 0 0 1 1 0 |
★Hint
数列下标从 1 开始。
解题思路
奇数个1的异或和为1,偶数个1的异或和为0
类似 [coprime_sequence(互质序列)](http://www.cnblogs.com/cbattle/p/7577344.html),用数组记录中间值
********************************************************************************
写完后发现之用算从左到右的值存入left[] ,L到R的异或和为left[R]-left[L-1]
********************************************************************************
code
#include <stdio.h>
#include <stdlib.h> int p[];
int left[]={};
int right[]={}; int main()
{
int i,j;
int len,ask,l,r;
int onenum=; scanf("%d %d",&len,&ask);
for(i=;i<=len;i++)
{
scanf("%d",p+i);
if(p[i]==) onenum++;
} for(i=;i<=len;i++)
{
if(i==)
left[i] = p[i];
else
left[i] = left[i-] + p[i];
}
for(i=len;i>=;i--)
{
if(i==len)
right[len] = p[len];
else
right[i] = right[i+] + p[i];
}
// for(i=1;i<=len;i++) printf("%d ",p[i]); printf("\n");
// for(i=1;i<=len;i++) printf("%d ",left[i]); printf("\n");
// for(i=1;i<=len;i++) printf("%d ",right[i]); printf("\n");
for(i=;i<ask;i++)
{
scanf("%d %d",&l,&r);
int num;
if(l==)
num = onenum - right[r+];
else if(r==len)
num = onenum - left[l-];
else
num = onenum - left[l-] - right[r+]; printf("%d\n",num%);
} return ;
}
数据结构 elegant_sequence(优雅的序列)的更多相关文章
- python数据结构(一)------序列
数据结构是通过某种方式(例如对元素进行编号)组织在一起的数据元素的集合:在Python中,最基本的数据结构是序列(sequence),序列中的每个元素被分配一个序列号--即元素的位置,也称为索引. p ...
- Fluent_Python_Part2数据结构,02-array-seq,序列类型
1. 序列数据 例如字符串.列表.字节序列.元组.XML元素.数据库查询结果等,在Python中用统一的风格去处理.例如,迭代.切片.排序.拼接等. 2. 容器序列与扁平序列 容器序列:容器对象包含任 ...
- 数据结构_coprime_sequence(互质序列)
coprime_sequence(互质序列) 问题描述 顾名思义,互质序列是满足序列元素的 gcd 为 1 的序列.比如[1,2,3],[4,7,8],都是互质序列. [3,6,9]不是互质序列.现在 ...
- 《流畅的Python》第二部分 数据结构 【序列构成的数组】【字典和集合】【文本和字节序列】
第二部分 数据结构 第2章 序列构成的数组 内置序列类型 序列类型 序列 特点 容器序列 list.tuple.collections.deque - 能存放不同类型的数据:- 存放的是任意类型的对象 ...
- 【读书笔记】《Python_Cookbook3》第一章:数据结构和算法
Python提供了多样化有用的内建数据结构,例如列表.集合.字典.大多数时候,这些结构的使用比较简单,然后,一些关于搜索.排序.过滤的常见问题经常出现.本章节的目标是讨论常见的数据结构,以及涉及到 ...
- python的序列类
1,我们常见的数据结构有哪些是序列类 序列类型的分类: ① 容器序列:list,tuple,deque(可以防止任意的类型的容器) ② 扁平序列:str,bytes,bytearray,array ...
- 第2章 Python序列
Python序列类似于C或Basic中的一维.多维数组等,但功能要强大很多,使用也更加灵活.方便,Head First Python一书就戏称列表是“打了激素”的数组. Python中常用的序列结构有 ...
- Redis删除特定前缀key的优雅实现
还在用keys命令模糊匹配删除数据吗?这就是一颗随时爆炸的炸弹! Redis中没有批量删除特定前缀key的指令,但我们往往需要根据前缀来删除,那么究竟该怎么做呢?可能你一通搜索后会得到下边的答案 re ...
- Python 官方中文教程(简)
Python 官方教程 前言 这是一次系统学习Python官方教程的学习笔记 整个教程一共16章, 在学习过程中记录自己不知道的和一些重要的知识, 水平有限, 请指正. Python3.7 官方教程. ...
随机推荐
- python IOError: cannot identify image file
转:http://blog.csdn.net/sinat_25704999/article/details/50118465
- VC 6.0下载 VC 6.0英文版下载 Visual C++ 6.0 英文企业版 集成SP6完美版(最新更新地址,百度网盘)
下载地址1:Visual.C++.6.EN 下载地址2:Visual.C++.6.EN 更新下载地址可用(百度网盘)Visual.C++.6.EN 转载请注明出处,有技术问题,欢迎互相交流,或者留言.
- CentOS下安装Python3.4
系统环境:CentOS 7.2 CentOS7安装Python3.4 ,让Python2和3共存 编译需要的一些包: yum -y groupinstall "Development too ...
- es5中foreach的用法
HTML代码: <p id="result"></p> JS代码: var eleResult = document.getElementById(&quo ...
- Linux应用程序调用其他程序执行
一.system 1.作用 在Linux应用程序中调用另一个程序: 2.用法 system("/sbin/ifconfig"): 二.popen 1.作用 调用另一个程序执行,同时 ...
- LTE-V2X车联网无线通信技术发展
2017年9月7日,国家制造强国建设领导小组车联网产业发展专项委员会第一次全体会议在北京召开.会议要求“要加大关键产品研发攻关力度,完善测试验证.技术评价.质量认证等公共服务平台,促进LTE-V2X车 ...
- 开发环境无错,部署至测试环境报错“NoSuchMethodError”OR"NoSuchClassError"
背景: 实现一个简单的功能,需要用到jedis的jar包连接Redis.在之前便已经有使用jedis,它的版本比较旧,是2.1的.而新实现的功能,在编码的时候使用的是2.8的.在开发环境完成单元测试后 ...
- Oracle 11g R2(11.2.0.4) RAC 数据文件路径错误解决--ORA-01157 ORA-01110: 数据文件
Oracle 11g R2(11.2.0.1) RAC 数据文件路径错误解决--ORA-01157 ORA-01110: 数据文件 oracle 11g R2(11.2.0.4) rac--scan ...
- [我的CVE][CVE-2017-15708]Apache Synapse Remote Code Execution Vulnerability
漏洞编号:CNVD-2017-36700 漏洞编号:CVE-2017-15708 漏洞分析:https://www.javasec.cn/index.php/archives/117/ [Apache ...
- 2016.6.18主窗体、子窗体InitializeComponent()事件、Load事件发生顺序以及SeleChanged事件的发生
主窗体,子窗体的InitializeComponent(构造函数).Load事件执行顺序 1.主窗体定义事件 new 主窗体() 构造函数进入主窗体InitializeComponent函数,该函数中 ...