TouchStone
  请登录后使用
登录 注册
距离CSP第一轮: ??天 距离CSP第二轮: ??天 距离NOIP还有: ??天
 系统首页  练习题库  考试列表  判题结果  信息发布  解题排行
  • 首页
  • 题库
  • P7868
  • 题目
  • P7868AC基因改改
    限制 : 时间限制 : - MS   空间限制 : - KB
    评测说明 : 1s,64m
    问题描述

    众所周知,DNA由2条脱氧核糖核苷酸链组成;脱氧核糖核苷酸的碱基共有4种:腺嘌呤(A)、鸟嘌呤(G)、胞嘧啶(C)、胸腺嘧啶(T);
    对于DNA中的每一对脱氧核糖核苷酸而言,它们的碱基相互靠近,其中,腺嘌呤(A)只能与胸腺嘧啶(T)相对、鸟嘌呤(G)只能与胞嘧啶(C)相对。
    何老板最近又去医院测出了自己一段长为N的脱氧核糖核苷酸,他发现其中”AC”出现的次数比自己预计中要少,于是,何老板对自己的这段脱氧核糖核苷酸进行了以下操作:

    • 1 X Y 表示将该段脱氧核糖核苷酸X位置的脱氧核糖核苷酸改为Y(Y为字符);
    • 2 X Z 表示询问 [X,Z] 这段DNA中”AC”出现的次数。

    由于何老板不想让其他人知道这些数据,所以每次输出的数据都要异或上一次输出的数据

    输入格式

    第1行N M 2个用空格隔开的整数,表示该段脱氧核糖核苷酸长度,进行操作的次数;
    第2行 N个字符,表示该段脱氧核糖核苷酸;
    第3~2+M行 表示进行的M次操作。

    输出格式

    对于每次询问输出一个数据,每个数据一行。

    样例输入 1

    6 6
    A C T G A C
    2 1 6
    1 3 A
    1 4 C
    2 2 3
    2 1 3
    2 1 6

    样例输出 1

    3
    3
    2
    1

    样例输入 2

    20 20
    T C C C C T C T C C C C T A C T G A A A 
    2 3 19
    1 1 G 
    1 13 T 
    1 2 T 
    2 3 13
    1 4 C 
    2 16 17
    2 4 10
    2 2 8
    1 8 A 
    2 3 18
    2 7 9
    2 6 9
    1 15 G 
    1 5 G 
    1 10 T 
    2 8 20
    2 3 17
    1 1 T 
    2 10 20

    样例输出 2

    2
    2
    3
    3
    3
    0
    1
    0
    2
    0
    1

    提示

    1<=N<=10,0000 1<=M<=10,0000 1<=X<=Z<=N