国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

[XJB出題] [線段樹] [模擬] 掀桌子(reverse)

2019-11-08 19:49:22
字體:
來源:轉載
供稿:網友

//(╯‵□′)╯︵┻━┻ 題目描述 Description

HeRaNO喜歡追番,他每天晚上都要看番,看到吐槽的地方,他就會掀桌子…… 一天晚上,HeRaNO又看番了。他覺得自己會掀桌子,于是他將他的桌子圍成一個圈,看到一個槽點,他就會以順時針方向將L號和R號(包括L號和R號)之間的桌子掀翻。如果這個桌子已經翻了,他就會再翻回來…… 這部番太爛了,HeRaNO掀了很多次桌子,在一旁的HSD桑看不下去了,他將HeRaNO每次掀翻桌子的區間[L,R]記錄了下來,準備把桌子復原,他知道最后所有桌子的情況,請求出最初桌子的情況。(0-掀翻,1-沒掀翻)

輸入 Input

1行,兩個正整數n,Tn表示桌子數,T表示HeRaNO掀了T次桌子; 第2行,n個數,表示桌子的最后狀態。 第3~T+2行,每行兩個整數L,R,表示掀翻桌子的區間。 為了方便讀入輸出,操作的第i行為HeRaNO的第T?i+1步操作。

輸出 Output

一行n個數,用空格分隔,表示最初的桌子情況。

樣例輸入 Sample Input

8 2 1 0 1 0 1 1 0 0 4 5 5 4

樣例輸出 Sample Output

0 1 0 0 1 0 1 1

樣例解釋 Explanation

第二次HeRaNO掀翻的是[4,5]區間的桌子,HSD桑要翻回來,序列變成: 1 0 1 1 0 1 0 0; 第一次HeRaNO掀翻[5,4]區間的桌子,序列變成: 0 1 0 0 1 0 1 1。 (此處用“[]”是不合理的……)

限制 Limits

30%的數據:n,T≤10370%的數據:n,T≤105100%的數據:n,T≤106。 Time Limit:3s & Memory Limit:512MB

題解 Solution 30%的數據:送分,暴力。 70%的數據:線段樹,完成區間修改,直接下傳翻轉標記即可。時間復雜度O(Tlogn)100%的數據: 先對每個位置,如果與前一個相同,就寫0,不同則寫1; 然后一個區間修改就變成了兩點修改辣! 就相當于對L位置和R+1位置取反。 然后就可以A掉辣! 時間復雜度O(n+T) Code

來源 Source 感謝學哥提供問題,學姐提供解答。 原題為:n個二進制位排成一個環,給定初始狀態。每次操作可以翻轉連續的k位,問全部變成10的最小操作次數。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黄山市| 象山县| 邵阳县| 奉贤区| 喀什市| 东乌| 昌乐县| 祁东县| 台东市| 塔河县| 灯塔市| 阿鲁科尔沁旗| 关岭| 金沙县| 固阳县| 长岭县| 海宁市| 利川市| 包头市| 长海县| 巩义市| 邵东县| 遂溪县| 阆中市| 延长县| 渝北区| 昌都县| 额敏县| 汉源县| 长乐市| 闻喜县| 息烽县| 曲沃县| 三原县| 怀集县| 洛宁县| 安达市| 嵊州市| 家居| 神农架林区| 延川县|