ZJOI2003密码机,没找到可以测试的网站,就只过了样例~~

题目描述

  一台密码机按照以下的方式产生密码:首先往机器中输入一系列数,然后取出其中一部分数,将它们异或以后得到一个新数作为密码。现在请你模拟这样一台密码机的运行情况,用户通过输入控制命令来产生密码。密码机中存放了一个数列,初始时为空。密码机的控制命令共有3种:

  ADD < Number > 
    把< Number >到数列的最后。 
  REMOVE < Number > 
    在数列中找出第一个等于< Number >的数,把它从数列中删除。 
  XOR BETWEEN < Number1 > AND < Number2 > 
    对于数列中所有大于等于< Number1 >并且小于等于< Number2 >的数依次进行异或,输出最后结果作为密码。如果只有一个数满足条件,输出这个数。如果没有任何数满足条件,输出0。

  你可以假设用户不会REMOVE一个不存在于数列中的数,并且所有输入的数都不超过20000。


输入格式

包括了一系列的控制命令。每个控制命令占据单独一行。输入文件中没有多余的空行。文件不超过60000行。


输出格式

对于每个XOR命令,依次在输出一行包括你的密码机所产生的密码。输出文件中不应该包含任何的多余字符


样例数据

样例输入

ADD 5 
ADD 6 
XOR BETWEEN 1 AND 10 
REMOVE 5 
XOR BETWEEN 6 AND 8

样例输出


6

由于a^b^a==b,所以从题目中可以看出,添加和删除都是^下一num

然后用树状数组维护num的情况就可以了

 #include <algorithm>
#include <iostream>
#include <string>
#include <cstdio> #define lowbit(x) (x&(-x)) using namespace std; const int N=+;
string s,s1,s2;
int num,num1,num2,t[N]; void insert(int x)
{
for(;x<=N;x+=lowbit(x)) t[x]^=num;
} int query(int x)
{
int ans=;
for(;x;x-=lowbit(x)) ans^=t[x];
return ans;
} int main()
{
while(cin>>s)
{
if(s=="ADD"||s=="REMOVE")
scanf("%d",&num), insert(num);
else
{
cin>>s1>>num1>>s2>>num2;
if(num1>num2) printf("0\n");
else printf("%d\n",query(num2)^query(num1-));
}
}
return ;
}

ZJOI—— 密码机(2003)的更多相关文章

  1. Windows Server 2003安装方法

    1. 设置BIOS,从光驱引导启动.光盘放入光驱,自动读盘,选择第一项“安装Windows Server 2003,Enterprise Bdition”: 2. 弹出加载安装文件界面. 3. 出现安 ...

  2. ERROR 2003 (HY000): Can't connect to MySQL server on 'ip address' (111)的处理办法

    远程连接mysql数据库时可以使用以下指令 mysql -h 192.168.1.104 -u root -p 如果是初次安装mysql,需要将所有/etc/mysql/内的所有配置文件的bind-a ...

  3. AD域的安装(在Windows Server 2003中安装Active Directory)

    在Active Directory中提供了一组服务器作为身份验证服务器或登录服务器,这类服务器被称作域控制器(Domain Controller,简称DC).建立一个AD域的过程实际就是在一台运行Wi ...

  4. [原创]Windows Server 2003 物理机转换为VMware虚拟机出现VSS错误的处理

    一台Windows Server 2003 物理机需要转换为VMware虚拟机,工具为Vmware vCenter Converter Standalone 6.0,转换开始就出现错误“FAILED: ...

  5. 应用程序无法正常启动0xc0150002(windows server 2003)

    windows server 2003运行一个程序时出现 "应用程序无法正常启动0xc0150002"的错误提示; 解决方案: 下载地址:http://www.microsoft. ...

  6. windows 2003自动登录的具体步骤

    在win2003系统中,使用最多的可能就是远程操作了,关于远程操作的那些事很多用户还是有些迷茫的.如果win2003系统远程重启后,要重新登录系统十分的麻烦,如何才能实现重启后的自动登录呢?让高手告诉 ...

  7. mysql数据库视图连接出现2003····错误

    MySQL利用视图工具连接数据库时出现2003····错误                                                  原因:MySQL的服务没有开启 解决步骤: ...

  8. 远程连接mysql数据库时报错: 错误代码 2003不能连接到MySQL服务器在*.*.*.*(111)

    在测试服务器上安装完mysql后, 服务器自己访问没有问题, 但是本地通过sql客户端连接时报错: 错误代码 2003不能连接到MySQL服务器在*.*.*.*(111).在网上查了一些资料,解决方案 ...

  9. 规则“Windows Server 2003 FILESTREAM 修补程序检查” 失败。

    近期在客户环境搭建SQL故障转移群集,操作系统为SQL Server 2012R2,数据库版本为SQL Server2008 R2,在安装过程中遇到问题:没有安装Windows Server 2003 ...

随机推荐

  1. C#中的string驻留池

    刚开始学习C#的时候,就听说CLR对于String类有一种特别的内存管理机制:有时候,明明声明了两个String类的对象,但是他们偏偏却指向同一个实例.如下: String s1 = "He ...

  2. spring的关于数据源的datasource接口的深入理解

    1.DataSource的接口这是一个spring接口,可以获取数据库的Connection.是标准化的,取得连接的一种方式. 默认市面上有两个数据库连接池实现了spring的datasource接口 ...

  3. hdu 5410 CRB and His Birthday 01背包和全然背包

    #include<stdio.h> #include<string.h> #include<vector> #include<queue> #inclu ...

  4. Java学习之道:Java 导出EXCEL

    1.Apache POI简单介绍  Apache POI是Apache软件基金会的开放源代码函式库.POI提供API给Java程式对Microsoft Office格式档案读和写的功能. .NET的开 ...

  5. JPA实现一对多(OneToMany)关联

    转自:https://blog.csdn.net/qq_32444825/article/details/77084580 1.考试类 @Entity public classExam impleme ...

  6. query.setFirstResult解析

    转自:https://blog.csdn.net/thinkingcao/article/details/78053622

  7. 8.QList QMap QVariant

    QList int main1(int argc, char *argv[]) { QApplication a(argc, argv); QList<,,}; mylist << ...

  8. POJ 2665 模拟,,

    It is confirmed that these sections do not overlap with each other. 一句话 就变成水题了,,, // by SiriusRen #i ...

  9. [转]java多线程并发去调用一个类的静态方法安全性探讨

    文章转自:https://blog.csdn.net/weibin_6388/article/details/50750035 这篇文章主要讲多线程对静态方法访问的数据安全性 总结如下: 1,java ...

  10. COM基础

    为什么说COM的可重用性是建立在二进制级别? COM本身是语言无关,它的标准建立在二进制级别.对于使用COM组件的客户程序,它只需要要使用的COM对象信息就可以通过COM库的帮助创建和使用COM对象, ...