AT_s8pc_2_h.Counting 1's

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

给定一个长度为 nn 的数列。

我们会给出 QQ 个查询,每个查询包含一个参数 qiq_i。

  • 如果 qiq_i 为 11,则反转区间 li≤i<ril_i \le i < r_i 内的所有位。
  • 如果 qiq_i 为 22,则计算并输出区间 li≤i<ril_i \le i < r_i 内的 11 的个数。

请编写一个程序来处理这些查询。最初,该数列中的所有位都初始化为 00,并且位置从 00 开始编号。

例如,当 n=7n=7,并且查询 qi,li,riq_i, l_i, r_i 如下表所示时,数列状态将会按照下述方式变化:

查询 {qi,li,ri}\{q_i, l_i, r_i\} 0 0 0 0 0 0 0 输出
{1,2,5}\{1, 2, 5\} 0 0 1 1 1 0 0 -
{1,4,7}\{1, 4, 7\} 0 0 1 1 0 1 1 -
{2,1,6}\{2, 1, 6\} 0 0 1 1 0 1 1 3
{1,0,4}\{1, 0, 4\} 1 1 0 0 0 1 1 -
{2,3,7}\{2, 3, 7\} 1 1 0 0 0 1 1 2
{1,2,6}\{1, 2, 6\} 1 1 1 1 1 0 1 -
{2,0,7}\{2, 0, 7\} 1 1 1 1 1 0 1 6

因此,输出结果为:

3
2
6

输入格式

输入通过标准输入提供,格式如下:

nn QQ
q1q_1 l1l_1 r1r_1
:
:
qQq_Q lQl_Q rQr_Q

  • 第一行包含两个整数,数列长度 nn 和查询数量 QQ,中间以空格分隔。
  • 接下来的 QQ 行中,每行提供三个整数 qi,li,riq_i, l_i, r_i,以空格分隔。
  • qiq_i 表示查询的类型,li,ril_i, r_i 分别表示该查询涉及的区间的左端和右端。
  • 请注意,查询范围包括左端点 lil_i,但不包括右端点 rir_i。

输出格式

对于每个查询 qi=2q_i = 2,输出区间 li≤i<ril_i \le i < r_i 内的 11 的个数,每个结果占一行。

输入输出样例

  • 输入#1

    8 4
    1 3 7
    2 2 5
    1 2 4
    2 1 6

    输出#1

    2
    3
  • 输入#2

    5 3
    1 0 3
    1 2 5
    2 1 4

    输出#2

    2
  • 输入#3

    7 7
    2 3 4
    1 4 6
    2 1 5
    1 0 7
    1 2 5
    2 0 7
    1 2 3

    输出#3

    0
    1
    4

说明/提示

  • 1≤n,Q≤100,0001 \le n, Q \le 100,000
  • 0≤li<ri≤n0 \le l_i < r_i \le n
  • 1≤qi≤21 \le q_i \le 2

子任务

子任务 1 [4 分]

  • 满足 1≤n,Q≤1,0001 \le n, Q \le 1,000。

子任务 2 [12 分]

  • 输出查询的总数量不超过 1,0001,000 个。

子任务 3 [36 分]

  • 所有输出查询都要求 li,ril_i, r_i 为 0,n0, n 组合。

子任务 4 [48 分]

  • 没有附加限制。

本翻译由 AI 自动生成

输入解题思路,AI测评打分。不知道怎么写?

首页