TouchStone
  请登录后使用
登录 注册
 系统首页  练习题库  考试列表  判题结果  信息发布  解题排行
  • 首页
  • 题库
  • P2997
  • 题目
  • P2997【nodgd造水题】狗
    限制 : 时间限制 : 6000 MS   空间限制 : 131072 KB
    问题描述

    nodgd家里有很多狗!太多的狗给nodgd带来了各种麻烦,于是nodgd决定开个赶走一些狗!
    nodgd首先按照狗的品种把所有狗分成N类,依次是第1类,第2类,...,第N类。刚开始第i类有ai只。
    nodgd有时候会心情不爽,就会把第l类、第l+1类、第l+2类、...、第r-1类、第r类的每类狗都进行这样的操作:
      第一步,把这类狗排成一个尽量大的正方形方阵,多余的狗就赶走!
      第二步,在正方形方阵中每一横排任选一条狗留下,其余全部赶走!
    当然,狗也是需要喂食的,喂食之前需要先知道有多少条狗。因为赶走了一些狗,所以nodgd也记不清楚到底有多少条狗了,他可能会问你,第l类、第l+1类、第l+2类、...、第r-1类、第r类一共还剩多少条狗?你作为一个优秀的程序员,当然可以写个程序来回答nodgd的提问啦!

    简化版题目描述:给个序列,区间开方,向下取整,区间求和。

    输入格式

    第一行两个整数N,M,分别表示狗的种类数和操作次数
    第二行N个整数a1,a2,...,aN,表示每类狗一开始有多少条
    接下来M行,每行三个整数k,l,r。若k=0则表示nodgd心情不爽了又要赶走一些狗了,若k=1则表示nodgd打算给狗喂食了就先向你提问

    输出格式

    对于nodgd的每次提问输出答案

    样例输入

    10
    1 2 3 4 5 6 7 8 9 10
    5
    0 1 10
    1 1 10
    1 1 5
    0 5 8
    1 4 8

    样例输出

    19
    7
    6

    提示

    样例解释:
    第一次操作之后狗的数量分别是1,1,1,2,2,2,2,2,3,3.
    第四次操作之后狗的数量分别是1,1,1,2,1,1,1,1,3,3.

    数据范围:
    1<=N<=100000
    1<=M<=100000
    1<=ai<=1012
    1<=l<=r<=N

    nodgd很懒就只造了6个测试点