#P10181. 龙逐千灯幻
龙逐千灯幻
题目背景
龙年到,帆帆也举起了自己的彩龙灯,他自己也要变成大彩龙啦!
题目描述
帆帆一共有 盏龙灯,第 盏的颜色是 。
帆帆认为一段区间 的美观度 为 中的不同颜色个数。
帆帆准备带着自己的龙灯去玩,他一共计划去玩 天,第 天,他会带着自己的 号龙灯,但是他发现如果把很多龙灯装在一起,那么别人只会注意到其中有多少种不同的颜色。
因此帆帆准备把这 个龙灯按照编号顺序分成恰好 个区间,满足每盏灯恰好在一个区间内。
那么帆帆这次出行的美观度就为所有区间的美观度的和。
请你帮帮帆帆最大化每一次出行的美观度。
输入格式
第一行五个整数 ,分别代表序列长度,询问次数,以及 编号(样例中的 ),随机数种子,以及一个和询问有关的参数 。
因为本题输入量过大,因此采用如下方式生成询问:
我们使用下面的代码生成一个伪随机数列:
一开始 PRG_state=seed
,你每次调用 readW(l,r)
会返回一个 内的随机数。
第二行 个整数,第 个整数代表 。
设 表示第 组询问需要的参数 ,其中 的作用见输出格式,那么所有询问的参数可以用以下程序生成:
注:请不要在运行上述代码段获得各组询问的参数之前调用 readW()
函数,否则无法获得正确的询问信息。 本题不需要利用该伪随机数生成器的特殊性质,你只需将 get_number()
视为一个每次调用独立且均匀随机地生成一个无符号 位整数的生成器即可。本题也不需要优化伪随机数生成器的内部实现。
输出格式
为了减少输出量,我们使用如下方式进行信息压缩:
如果第 组询问的答案为 ,其生成参数为 ,那么你需要输出:
其中 为异或运算,该值显然一定位于 long long
能表示的整数范围内。
提示
【样例1解释】
询问分别是:
答案分别是:
对于第一组询问,要分成一个区间,那么就是 ,美观度就是 。
对于第二组询问,最优的方案是分成 ,美观度是
后三个询问同理。
【样例2解释】
询问分别是:
询问答案分别是:
【数据范围】
本题采用捆绑测试。
- 子任务一( 分):。
- 子任务二( 分):。
- 子任务三( 分):。
- 子任务四( 分):。
- 子任务五( 分):。
- 子任务六( 分):无特殊限制。
对于 的数据,,,,,。