2026年J组模拟赛10连测第8场-T2 程老师的特征码
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
| 项目 | 说明 |
|---|---|
| 目录 | xor |
| 可执行文件名 | xor.cpp |
| 输入文件 | xor.in |
| 输出文件 | xor.out |
| 每个测试点时限 | 1.0 秒 |
| 内存限制 | 512 MiB |
| 测试点数目 | 20 |
| 测试点是否等分 | 是 |
题目描述
程老师手头有一批做实验用的采集设备。设备一旦开机,就一秒一次地把当次测到的传感值报出来,报满 秒为止。每个传感值都是一个不小于 、小于 的整数,一秒一个,按报出的先后排成一行。程老师要在这行数据里找出他关心的特征段。
一段连续时段指的是这行数据里从第 秒到第 秒的一整段,其中 。一段连续时段是不是特征段,只看一件事:把这段里的所有传感值按位异或起来,结果恰好等于程老师给定的整数 。
按位异或是对两个整数做的运算:把两个数都写成二进制,从低位对齐后逐位比较,同一位上两个数字相同(都是 0 或者都是 1),结果的这一位就是 0;两个数字不同,结果的这一位就是 1。一段里有多个传感值时,从第一个开始依次做下去,先后顺序不影响结果。
程老师想知道,这 秒里一共有多少段连续时段是特征段。两段连续时段只要起止秒数不完全相同,就算作不同的两段。
输入格式
从文件 xor.in 中读入数据。
第一行两个整数 。
第二行 个整数 ,依次表示每一秒报出的传感值。
输出格式
输出到文件 xor.out 中。
一行一个整数,表示特征段的个数。答案可能超过 位整数范围。
数据范围
对于所有测试数据,保证:
- ;
- ;
- 。
| 测试点 | 特殊性质 | |
|---|---|---|
| 1~2 | 无 | |
| 3~6 | ||
| 7~10 | ||
| 11~18 | ||
| 19 | A | |
| 20 | B |
特殊性质 A:。
特殊性质 B:每个传感值都小于 。
4 3
1 2 3 4
2
3 0
5 5 7
1
样例解释
样例 1:,逐段核对。只含一秒的段里, 等于 ,另外三个分别是 ,都不等于 。含两秒的段里, 等于 ;,,都不等于 。含三秒的段:,,都不等于 。含四秒的段:。所以特征段是第 到第 秒、第 到第 秒这两段,共 段。
样例 2:,要看异或结果为 的段。只含一秒的三段分别是 ,都不为 。第 到第 秒这一段,,是特征段;第 到第 秒这一段,;整段 。共 段。