题目名称 2731. [郑州集训 2017]NOI模拟题1.1
输入输出 yi.in/out
难度等级 ★★★
时间限制 1000 ms (1 s)
内存限制 512 MiB
测试数据 10
题目来源 GravatarAAAAAAAAAA 于2017-07-07加入
开放分组 全部用户
提交状态
分类标签
分享题解
通过:5, 提交:9, 通过率:55.56%
GravatarKirin 100 1.213 s 77.35 MiB C++
Gravatarrewine 100 1.811 s 105.14 MiB C++
Gravatar再见 100 2.023 s 216.97 MiB C++
GravatarRapiz 100 2.382 s 162.80 MiB C++
GravatarFoolMike 100 3.317 s 339.44 MiB C++
Gravatarrewine 80 1.729 s 79.62 MiB C++
GravatarRapiz 50 1.956 s 71.25 MiB C++
GravatarKirin 20 0.963 s 33.48 MiB C++
Gravatar再见 0 0.000 s 0.00 MiB C++
关于 NOI模拟题1.1 的近10条评论(全部评论)
随手开了2e6的数组以为够用了
然而还是爆了……
所以还是要好好算……
GravatarRapiz
2017-07-13 12:34 1楼

2731. [郑州集训 2017]NOI模拟题1.1

★★★   输入文件:yi.in   输出文件:yi.out   简单对比
时间限制:1 s   内存限制:512 MiB

【题目描述】


小火车沉迷垃圾手游不能自拔,正在玩碧蓝航线,可惜小火车的舰(lao)队(po)练度太低打不过副本,所以他只好去刷其余的副本来升级。

总共有n 个副本编号从1 到n,每个副本有个难度值Ai,小火车每天按照顺序刷连续的一段副本,第j 天会刷的副本必须落在l 到r之间。但是他是个很懒的人,每天一开始他的懒惰值为0,当他刷完一个副本以后懒惰值就会异或上Ai,小火车希望懒惰值一直保持单调不下降,请问每天他都有多少种刷副本的方法?



【输入格式】


第一行一个整数n,表示副本数量。

接下来一行n 个整数表示副本的难度。

接下来一行一个整数m 表示天数。

接下来m 行每行两个整数a,b 表示一组询问,为了体现程序的在线性,题目中说的l 和r 都需要计算得到,设上个询问的答案为las(初始为0),则l=((a+las) mod n)+1,r=((b+las) mod n)+1,当然如果这样求得的l 和r 满足l>r 请将l 和r 交换。


【输出格式】

m 行每行一个整数表示答案。

【样例输入】

4

1 2 3 4

3

1 3

0 3

3 1

【样例输出】

4

6

4

【提示】


【数据范围与约定】

对于20%的数据n,m<=5000(这部分数据干脆也随机了吧XD);

对于另外20%的数据m=1,l=0,r=n-1;

对于另外30%的数据随机;

对于100%的数据n,m<=100000,0<=Ai<=10^9。


【来源】

吴作凡