hrbust/哈理工oj 2220 强迫症【思维】
| 強迫癥 | ||||||
| ||||||
| Description | ||||||
| 眾所周知,我們在使用網(wǎng)絡(luò)聊天時如果在結(jié)尾加上一個括號會使語氣變的十分有趣(。 但是這對于一位強迫癥患者,xiaodao?隊友Wangzhpp的下鋪?wsc500而言,則是一件無法忍受的事情?——?Wangzhpp給他發(fā)送的消息中又有一大堆沒有被匹配起來的括號!善良的xiaodao決定幫助他將這一大坨括號完美地匹配起來。 已知消息是一個由n個左括號“(”與n個右括號“)”所組成的括號序列,xiaodao需要使用不超過n次操作將所給的括號序列變?yōu)橐粋€完美匹配的括號序列。 每次操作,xiaodao可以指定一個區(qū)間[l,r],將其中的所有括號反序。如“()(()”在進行操作后會變?yōu)?/span>“)(()(”。 | ||||||
| Input | ||||||
| 第一行一個整數(shù)?T?,代表有?T?組數(shù)據(jù)。 每組數(shù)據(jù)僅一行,包含一個如上所述的括號序列。 (括號序列的長度?2 <= 2n <=?100000) | ||||||
| Output | ||||||
| 對于每組數(shù)據(jù), 第一行輸出一個整數(shù)m(m<=n),代表xiaodao的操作次數(shù)。 接下來m行,每行輸出兩個整數(shù)l, r(l<=r),代表xiaodao這一次對區(qū)間[l,r]內(nèi)的序列進行了操作。 | ||||||
| Sample Input | ||||||
| 2 )()()( )(())( | ||||||
| Sample Output | ||||||
| 1 1 6 2 1 2 5 6 | ||||||
| Hint | ||||||
| 只需要構(gòu)造一個合法解而非最優(yōu)解。 | ||||||
| Source | ||||||
| "誠德軟件杯"哈爾濱理工大學(xué)第四屆ACM程序設(shè)計團隊賽 |
思路:既然是題目保證了有n個左括號和n個右括號,辣么不難想到,因為是逆序放置,只要使得左邊的括號全是左括號,右邊的括號全是右括號即可,辣么操作就是這樣滴:
在左半邊遍歷,如果遇到了右括號,就在后邊找左括號,如果找到了左括號,加入答案數(shù)組中,然后別忘記使得左括號變成右括號。
AC代碼:
總結(jié)
以上是生活随笔為你收集整理的hrbust/哈理工oj 2220 强迫症【思维】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: fsdisk 分区
- 下一篇: 牛客网未通过代码---