国产探花免费观看_亚洲丰满少妇自慰呻吟_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的最小操作次數。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 西丰县| 克山县| 双城市| 炉霍县| 航空| 天气| 高安市| 元阳县| 贵溪市| 财经| 铁岭市| 屯留县| 天津市| 崇明县| 论坛| 基隆市| 台南市| 桑日县| 东莞市| 黑河市| 酉阳| 博爱县| 浦县| 周口市| 河津市| 江都市| 武城县| 昭通市| 民县| 鹤峰县| 林甸县| 小金县| 南和县| 荥阳市| 土默特左旗| 淳安县| 田阳县| 巴马| 宁安市| 安泽县| 新宾|