P3917 异或序列
题目描述
给出序列
求
的值。其中,
表示按位异或。
输入输出格式
输入格式:
第1 行,1 个整数NN。
第2 行,NN个整数A_1,A_2,\cdots,A_NA1,A2,⋯,AN。
输出格式:
一个数,为表达式的值
输入输出样例
输入样例#1:
1 | 2 |
输出样例#1:
1 | 6 |
说明
• 对于60% 的数据,
• 对于100% 的数据,
题解
计算一个区间的xor我们首先可以想到前缀异或,两个前缀异或进行异或运算就是区间异或值。
然后我们怎么快速统计所有区间异或值呢?
不难想到按位统计,每一位上0和1的个数乘起来(0不要忘了+1,还有左端点为0的情况)就是所有这一位能是一的区间个数(乘法原理)
Code:
1 |
|
P2188 小Z的 k 紧凑数
题目描述
小 Z 在草稿纸上列出了很多数,他觉得相邻两位数字差的绝对值不超过 k 的整数特别奇特,称其为 k 紧凑数。
现在小 Z 想知道 [l,r] 内有多少个 k 紧凑数,希望你帮帮他。
输入输出格式
输入格式:
第一行包含三个整数 l,r,k。
输出格式:
第一行包含一个整数,表示 [l,r] 内 k 紧凑数的个数。
输入输出样例
输入样例#1:
复制
1 | 1 13 1 |
输出样例#1:
复制
1 | 12 |
说明
【数据规模】
对于 30% 的数据,
对于另外 30% 的数据,l = 1,r 为 10 的倍数;
对于 100% 的数据,
题解
又独立切了省选难度的题嘤嘤嘤。
我的数位dp似乎比大佬的麻烦
状态设计为:
f(i,0/1,0/1,j)表示当前是从高位的第i位,卡不卡上界,是否全是前导0,最后一位是j的数量。
由于我是做差所以没有带卡下界状态,假如只做一次DP可以带上卡下界。
Code:
1 |
|