分块处理

lyp的密码(lyp)

【题目描述】

众所周知,lyp喜欢以用各种方式折磨别人为乐,这次,他趁wars不在时在他的电脑上挂了一把神奇的锁,这把锁需要一串巨长无比的数字密码才可以解开,这个密码由lyp自己保管,这样wars就没法Kingdom Rush了。但wars设法从lyp的脑袋中挖出了有关密码的信息,这些信息是一列非负整数{An}。而解开密码锁的方式是首先输入这列这数的逆序对数,而后依次会在wars的电脑屏幕上显示两个数字p,q,你则需要输入将整数列中第p个整数替换成q后整个数列的逆序对数,这样的询问会有m个。当然,这样的替换只对这一次的询问有效。现在wars急着去打Kingdom Rush,因此将打开电脑的任务交给了你。

【输入数据】

第1行 : n, m以空格隔开

第2行 : n个整数,以空格隔开,第i个整数代表Ai

第3~m+2行 : p, q以空格隔开

【输出数据】

依次输出可以解开密码锁的整数列

【输入样例】

5 3

2 3 1 4 5

3 4

2 1

5 1

 

【输出样例】

2

0

2

5

 

【数据约定】

 n<=50000,m<=50000

0<=序列的每一元素(包括询问中的)<=100000

保证询问合法。

 

Task  Color

【题目描述】

 给定一个长度为N的颜色序列C,对于该序列中的任意一个元素Ci,都有1<=Ci<=M。对于一种颜色ColorK来说,区间[L,R]内的权值定义为这种颜色在该区间中出现的次数的平方,即区间[L,R]内中满足Ci=ColorK的元素个数的平方。接下来给出Q个询问,询问区间[L,R]内颜色[a,b]的权值总和。

【输入数据】

第1行三个整数N,M,Q。分别代表序列长度,颜色总数和询问总数。

第2行N个整数,代表序列Ci。

第3行到第Q+2行,每行4个整数l,r,a,b。记上一次计算出的答案为Lans。那么实际的l,r,a,b为给出的l,r,a,b分别xor上Lans。第一个询问的时候Lans=0。

【输出数据】

总共Q行,对于每一个询问,输出权值总和。

【样例输入】

4 2 3

1 1 2 2

1 4 1 2

10 11 9 10

3 0 0 0

【样例输出】

8

2

0

【数据范围】

40% :1<=N,Q<=10000

100%:1<=N,Q<=50000

 

 

不给名称行吗

 

【题目描述】

 

         小A和小B玩游戏,有n堆石子和m堆糖果,小B先动。

 

         小A的操作,取走一堆石子或一堆糖果。

 

         小B的操作,若截止到此轮取走了i堆石子,j堆糖果,则分值加上(xi+yj)%p

 

         要求:直至全部拿完,分值最大,并输出方案

 

【输入文件】

 

第一行三个数n,m,p,意义如题所述

 

第二行n个数x0~xn-1

 

第三行m个数y0~ym-1

 

【输出文件】

 

第一行一个数表示最大分值

 

第二行输出方案,S表示拿石头(stone),C表示拿糖果(candy)

 

【样例输入1】

 

         2 2 10

 

0 0

 

0 1

 

【样例输出1】

 

         2

 

SC

 

【样例输入2】

 

         3 3 10

 

0 2 0

 

0 0 2

 

【样例输出2】

 

10

 

CSSC

 

【数据规模】

 

1 ≤ n, m ≤ 20000, 1 ≤ p ≤ 109

 

0 ≤ xi ≤ 20000 0 ≤ yi ≤ 20000

 

posted @ 2012-11-06 22:16  neayo  阅读(351)  评论(0编辑  收藏  举报