#P2846. [USACO08NOV] Light Switching G

[USACO08NOV] Light Switching G

题目描述

Farmer John tries to keep the cows sharp by letting them play with intellectual toys. One of the larger toys is the lights in the barn. Each of the N(2N105)N (2 \le N \le 10^5) cow stalls conveniently numbered 1N1\ldots N has a colorful light above it.

At the beginning of the evening, all the lights are off. The cows control the lights with a set of N pushbutton switches that toggle the lights; pushing switch i changes the state of light i from off to on or from on to off.

The cows read and execute a list of M(1M105)M(1\le M \le 10^5) operations expressed as one of two integers ( 00 \le operation 1\le 1 ).

The first kind of operation (denoted by a 00 command) includes two subsequent integers SiS_i and Ei(1SiEiN)E_i (1 \le S_i \le E_i \le N) that indicate a starting switch and ending switch. They execute the operation by pushing each pushbutton from SiS_i through EiE_i inclusive exactly once.

The second kind of operation (denoted by a 11 command) asks the cows to count how many lights are on in the range given by two integers SiS_i and Ei(1SiEiN)E_i (1 \le S_i \le E_i \le N) which specify the inclusive range in which the cows should count the number of lights that are on.

Help FJ ensure the cows are getting the correct answer by processing the list and producing the proper counts.

农夫约翰试图让奶牛玩智力玩具来保持它们的敏锐。谷仓里的灯是较大的玩具之一。N(2N105)N (2 \le N \le 10^5) 个牛栏编号为 1N1 \ldots N,每个牛栏上面都有一盏灯。起初所有的灯都关着。

共有 MM 次操作,分为两种。

  1. 指定一个区间 [Si,Ei][S_i,E_i],然后改变编号在这个区间内的灯的状态(把开着的灯关上,关着的灯打开);
  2. 指定一个区间 [Si,Ei][S_i,E_i],要求你输出这个区间内有多少盏灯是打开的。

输入格式

11 行: 用空格隔开的两个整数 NNMMNN 是灯数。

2M+12\ldots M+1 行: 每行表示一个操作, 有三个用空格分开的整数: 指令号, SiS_iEiE_i

若指令号为 00,则表示改变 [Si,Ei][S_i,E_i] 区间内的灯的状态(把开着的灯关上,关着的灯打开)。

若指令号为 11,则表示输出 [Si,Ei][S_i,E_i] 这个区间内有多少盏灯是打开的。

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

提示

数据点编号 NN MM
121\sim 2 100\le 100
343\sim 4 1000\le 1000
565\sim 6 10000\le 10000
787\sim 8 105\le 10^5 100\le 100
9109\sim 10 100\le 100 105\le 10^5
111211\sim 12 1000\le 1000
131413\sim 14 105\le 10^5 1000\le 1000
151615\sim 16 10000\le 10000
171817\sim 18 10\le 10 105\le 10^5
192019\sim 20 2000\le 2000 106\le 10^6