数据结构 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(优雅的序列)的更多相关文章

  1. python数据结构(一)------序列

    数据结构是通过某种方式(例如对元素进行编号)组织在一起的数据元素的集合:在Python中,最基本的数据结构是序列(sequence),序列中的每个元素被分配一个序列号--即元素的位置,也称为索引. p ...

  2. Fluent_Python_Part2数据结构,02-array-seq,序列类型

    1. 序列数据 例如字符串.列表.字节序列.元组.XML元素.数据库查询结果等,在Python中用统一的风格去处理.例如,迭代.切片.排序.拼接等. 2. 容器序列与扁平序列 容器序列:容器对象包含任 ...

  3. 数据结构_coprime_sequence(互质序列)

    coprime_sequence(互质序列) 问题描述 顾名思义,互质序列是满足序列元素的 gcd 为 1 的序列.比如[1,2,3],[4,7,8],都是互质序列. [3,6,9]不是互质序列.现在 ...

  4. 《流畅的Python》第二部分 数据结构 【序列构成的数组】【字典和集合】【文本和字节序列】

    第二部分 数据结构 第2章 序列构成的数组 内置序列类型 序列类型 序列 特点 容器序列 list.tuple.collections.deque - 能存放不同类型的数据:- 存放的是任意类型的对象 ...

  5. 【读书笔记】《Python_Cookbook3》第一章:数据结构和算法

      Python提供了多样化有用的内建数据结构,例如列表.集合.字典.大多数时候,这些结构的使用比较简单,然后,一些关于搜索.排序.过滤的常见问题经常出现.本章节的目标是讨论常见的数据结构,以及涉及到 ...

  6. python的序列类

    1,我们常见的数据结构有哪些是序列类 序列类型的分类: ①  容器序列:list,tuple,deque(可以防止任意的类型的容器) ②  扁平序列:str,bytes,bytearray,array ...

  7. 第2章 Python序列

    Python序列类似于C或Basic中的一维.多维数组等,但功能要强大很多,使用也更加灵活.方便,Head First Python一书就戏称列表是“打了激素”的数组. Python中常用的序列结构有 ...

  8. Redis删除特定前缀key的优雅实现

    还在用keys命令模糊匹配删除数据吗?这就是一颗随时爆炸的炸弹! Redis中没有批量删除特定前缀key的指令,但我们往往需要根据前缀来删除,那么究竟该怎么做呢?可能你一通搜索后会得到下边的答案 re ...

  9. Python 官方中文教程(简)

    Python 官方教程 前言 这是一次系统学习Python官方教程的学习笔记 整个教程一共16章, 在学习过程中记录自己不知道的和一些重要的知识, 水平有限, 请指正. Python3.7 官方教程. ...

随机推荐

  1. mysql-jdbc创建connection理解

    jdbc源码分析(http://blog.csdn.net/brilliancezhou/article/details/5499738) 创建JDBC连接代码 Class.forName(" ...

  2. C++中预定义的宏

    以下信息摘自与标准C++的文档中. 如果把这些宏加在程序的日志中,它将为开发人员进行问题分析提供了很好的帮助. standard c++ 1998版The following macro names ...

  3. UVA - 242 Stamps and Envelope Size (完全背包+bitset)

    题意:给你一些邮票面值的集合,让你选择其中一个集合,使得“能用不超过n枚集合中的邮票凑成的面值集合S中从1开始的最大连续面值”(即mex(S)-1)最大.如果有多解,输出集合大小最小的一个:如果仍有多 ...

  4. Js中的prototype的用法一

    一 prototype介绍 prototype对象是实现面向对象的一个重要机制.每个函数也是一个对象,它们对应的类就是function,每个函数对象都具有一个子对象prototype.Prototyp ...

  5. 【全面解禁!真正的Expression Blend实战开发技巧】第六章 认识ListBox

    反反复复考虑后,准备把这一章的切入点瞄准ListBox.并用了一个看起来有点别扭的标题“认识ListBox",许多人看到这里就不爱看了,即使是大学里用winform的学生也会说ListBox ...

  6. CentOS7中配置基于Nginx+Supervisor+Gunicorn的Flask项目

    配置Nginx 1.安装nginx yum install nginx 2.安装好后在/etc/nginx/default.d中添加location的配置,并指向8001端口,以后Gunicorn会监 ...

  7. 分区工具parted的详解及常用分区使用方法

    一.         parted的用途及说明 概括使用说明: parted用于对磁盘(或RAID磁盘)进行分区及管理,与fdisk分区工具相比,支持2TB以上的磁盘分区,并且允许调整分区的大小.   ...

  8. think python chapter2

    1.An assignment statement creates a new variable and gives it a value: Variable names can be as long ...

  9. 【Linux网络编程】基于TCP流 I/O多路转接(poll) 的高性能http服务器

    服务器比较简陋,为了学习poll的使用,只向客户端回写一条html语句.启动服务器后,浏览器发起请求,服务端向浏览器写回html,响应字符串,然后可以看到,浏览器解析并显示 Hello Poll!. ...

  10. 解决 ASP.NET Chart 控件出错 为 ChartImg.axd 执行子请求时出错

        今天在做一个关于MVC的MSChart时,本以为很简单的一个东西,后面把数据什么的都绑定好后,满以为OK了,一运行就报错“ ASP.NET Chart 控件出错 为 ChartImg.axd ...