链接:https://ac.nowcoder.com/acm/contest/132/C
来源:牛客网
题目描述
一共有 n个数,第 i 个数是 xi
xi 可以取 [li , ri] 中任意的一个值。
设S=∑xi2,求 S 种类数。
输入描述:
第一行一个数 n。 然后 n 行,每行两个数表示 li,ri。
输出描述:
输出一行一个数表示答案。
示例1
输入
5 1 2 2 3 3 4 4 5 5 6
输出
26
备注:
1 ≤ n , li , ri ≤ 100
【题解】:
这个题目就是我之前就做过了的,但是当时我还是年轻,没有接触过这个bitset( ),简直太骚了,就是用二进制中的0,1,但是这个自己开辟大小的,不需要管超空间之类的。然后为什么会提及这个bitset()呢???这个题目根本就是牛头不搭马嘴。
我们需要提前知道怎么统计,总和而且做到不重复。
网上解释:
计算每个区间的平方,用或运算存放平方和(1的下标也就是平方和的结果)。
首先设置一个低位为1的bitset,遍历每个区间,将已有的和分别左移不同的位置并做记录,最后1的个数就是种类数
<