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