uoj 228 基础数据结构练习题

Description

$ sylvia 是一个热爱学习的女孩子,今天她想要学习数据结构技巧。 $

$ 在看了一些博客学了一些姿势后,她想要找一些数据结构题来练练手。于是她的好朋友九条可怜酱给她出了一道题。 $

$ 给出一个长度为n的数列A,接下来有m次操作,操作有三种 $
$ 1.对于所有的iin[l,r],将A_i变成A_i+x. $
$ 2.对于所有的iin[l,r],将A_i变成lfloor surd{A_i} floor. $
$ 3.对于所有的iin[l,r],询问A_i的和. $

$ 作为一个不怎么熟练的初学者,sylvia 想了好久都没做出来。而可怜酱又外出旅游去了,一时间 联系不上。于是她决定向你寻求帮助:你能帮她解决这个问题吗。 $

Input

$ 第一行两个数:n,m。 $
$ 接下来一行 n个数 A_i。 $
$ 接下来 m 行中,第 i 行第一个数 ti 表示操作类型: $
$ 若 ti=1,则接下来三个整数 li,ri,xi,表示操作一。 $
$ 若 ti=2,则接下来三个整数 li,ri,表示操作二。 $
$ 若 ti=3,则接下来三个整数 li,ri,表示操作三。 $

Output

对于每个询问操作,输出一行表示答案。

Sample1

Input

5 5
1 2 3 4 5
1 3 5 2
2 1 4
3 2 4
2 3 5
3 1 5

Output

5
6

Sample2

见样例数据下载。

Hints

测试点编号nn 的规模mm 的规模其他约定
1 n3000n≤3000 m3000m≤3000  
2
3
4 n100000n≤100000 m100000m≤100000 数据随机生成
5
6 ti1ti≠1
7
8  
9
10

对于所有数据,保证有 1lirin,1Ai,xi105

Time Limit:1s

Memory Limit:256MB

Download

样例数据下载

原文地址:https://www.cnblogs.com/charlotte-o/p/7628932.html