日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Loj 【CQOI 2006】简单题,mmp

發(fā)布時間:2025/4/9 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Loj 【CQOI 2006】简单题,mmp 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

#10117. 「一本通 4.1 練習 2」簡單題

?

題目描述

題目來源:CQOI 2006

有一個?nnn?個元素的數(shù)組,每個元素初始均為?000。有?mmm?條指令,要么讓其中一段連續(xù)序列數(shù)字反轉(zhuǎn)——000?變?111,111?變?000(操作?111),要么詢問某個元素的值(操作?222)。

例如當?n=20n=20n=20?時,101010?條指令如下:

操作回答操作后的數(shù)組
1?1?101\ 1\ 101?1?10N/A111111111100000000001111111111000000000011111111110000000000
2?62\ 62?6111111111 ̄1111000000000011111\underline{1}1111000000000011111??1??11110000000000
2?122\ 122?12000111111111100 ̄0000000011111111110\underline{0}0000000011111111110??0??00000000
1?5?121\ 5\ 121?5?12N/A111100000011000000001111000000110000000011110000001100000000
2?62\ 62?6000111100 ̄0000110000000011110\underline{0}0000110000000011110??0??00001100000000
2?152\ 152?15000111100000011000 ̄0000011110000001100\underline 00000011110000001100??0??00000
1?6?161\ 6\ 161?6?16N/A11110111110011110000 1111011111001111000011110111110011110000
1?11?171\ 11\ 171?11?17N/A111101111111000010001111011111110000100011110111111100001000
2?122\ 122?12111111101111111 ̄0000100011110111111\underline 10000100011110111111??1??00001000
2?62\ 62?6111111101 ̄1111110000100011110\underline 11111110000100011110??1??11111100001000

輸入格式

第一行包含兩個整數(shù)?n,mn,mn,m,表示數(shù)組的長度和指令的條數(shù);
以下?mmm?行,每行的第一個數(shù)?ttt?表示操作的種類:

  • 若?t=1t=1t=1,則接下來有兩個數(shù)?L,RL, RL,R,表示區(qū)間?[L,R][L, R][L,R]?的每個數(shù)均反轉(zhuǎn);
  • 若?t=2t=2t=2,則接下來只有一個數(shù)?iii,表示詢問的下標。

輸出格式

每個操作?222?輸出一行(非?000?即?111),表示每次操作?222?的回答。

樣例

樣例輸入

20 10 1 1 10 2 6 2 12 1 5 12 2 6 2 15 1 6 16 1 11 17 2 12 2 6

樣例輸出

1 0 0 0 1 1

數(shù)據(jù)范圍與提示

對于?50%50\%50%?的數(shù)據(jù),1≤n≤103,1≤m≤1041\le n\le 10^3,1\le m\le 10^41n10?3??,1m10?4??;
對于?100%100\%100%?的數(shù)據(jù),1≤n≤105,1≤m≤5×1051\le n\le 10^5,1\le m\le 5\times 10^51n10?5??,1m5×10?5??,保證?L≤RL\le RLR。

?

?

分析

其實這道題很簡單(只要你想得到的話)

首先區(qū)間操作,區(qū)間查詢,很容易想到 RMQ ,然后樹狀數(shù)組和線段樹貌似沒有翻轉(zhuǎn)區(qū)間信息的功能啊。怎么辦呢?

那么我們考慮一下這道題的性質(zhì):最后得到的數(shù)字只可能是 0 或 1 也就是說如果某個位置被翻轉(zhuǎn)兩遍那么效果是一樣的。。。

然后要非常生硬的聯(lián)想到位運算 & ...?

接下來我們這么操作(鑒于樹狀數(shù)組常數(shù)小那么就用樹狀數(shù)組的講法了,至于線段樹也就是永久化標記的事兒):

我們每次直接去加一個區(qū)間的左端點 l 以及右端點 r+1 ,那么 r+1 以及后面位置上的數(shù)被翻轉(zhuǎn)了兩次,最低位還是不變

查詢的時候我們直接單點查詢(這里不需要什么騷操作,直接查詢 x 的前綴和就好了,因為前面區(qū)間沒有覆蓋到 x 的話必然是向后累加了兩次的,效果會抵消)。

沒錯,很樸素。沒錯,很簡單。沒錯,就是想不到。

?

代碼

轉(zhuǎn)載于:https://www.cnblogs.com/Judge/p/9630412.html

總結(jié)

以上是生活随笔為你收集整理的Loj 【CQOI 2006】简单题,mmp的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。