天津網(wǎng)絡(luò)優(yōu)化網(wǎng)站建設(shè)互聯(lián)網(wǎng)產(chǎn)品運(yùn)營
題目描述
現(xiàn)有?𝑛n?盞燈排成一排,從左到右依次編號(hào)為:11,22,……,𝑛n。然后依次執(zhí)行?𝑚m?項(xiàng)操作。
操作分為兩種:
- 指定一個(gè)區(qū)間?[𝑎,𝑏][a,b],然后改變編號(hào)在這個(gè)區(qū)間內(nèi)的燈的狀態(tài)(把開著的燈關(guān)上,關(guān)著的燈打開);
- 指定一個(gè)區(qū)間?[𝑎,𝑏][a,b],要求你輸出這個(gè)區(qū)間內(nèi)有多少盞燈是打開的。
燈在初始時(shí)都是關(guān)著的。
輸入
第一行有兩個(gè)整數(shù)?𝑛n?和?𝑚m,分別表示燈的數(shù)目和操作的數(shù)目。
接下來有?𝑚m?行,每行有三個(gè)整數(shù),依次為:𝑐c、𝑎a、𝑏b。其中?𝑐c?表示操作的種類。
- 當(dāng)?𝑐c?的值為?00?時(shí),表示是第一種操作。
- 當(dāng)?𝑐c?的值為?11?時(shí),表示是第二種操作。
𝑎a?和?𝑏b?則分別表示了操作區(qū)間的左右邊界。
輸出
每當(dāng)遇到第二種操作時(shí),輸出一行,包含一個(gè)整數(shù),表示此時(shí)在查詢的區(qū)間中打開的燈的數(shù)目。
樣例輸入?復(fù)制
4 5
0 1 2
0 2 4
1 2 3
0 2 4
1 1 4
樣例輸出?復(fù)制
1
2
提示
對(duì)于全部的測試點(diǎn),保證?2≤𝑛≤1052≤n≤104,1≤𝑚≤1051≤m≤104,1≤𝑎,𝑏≤𝑛1≤a,b≤n,𝑐∈{0,1}c∈{0,1}。
#include<bits/stdc++.h>
using namespace std;
int a[10001],b[100001];
bool q[10001]={0},q1[10000]={0};
int n,m;
int main(){cin>>n>>m;for(int i=1;i<=m;i++){cin>>q[i]>>a[i]>>b[i];if(q[i]==0){for(int j=a[i];j<=b[i];j++){if(q1[j]==0) q1[j]=1;else q1[j]=0; }}int ans=0;if(q[i]==1){for(int j=a[i];j<=b[i];j++){if(q1[j]==1) ans++;}cout<<ans<<endl;}}return 0;
}
?