Codeforces Round #312 (Div. 2)
好吧,再一次被水題虐了。
A. Lala Land and Apple Trees
敲碼小技巧:故意添加兩個蘋果樹(-1000000000, 0)和(1000000000, 0)(前者是位置,后者是價值)。
B. Amr and The Large Array
找出最長的是哪些數字,然后再對這些數字找最大區間。
我居然還想用兩個指針加有限隊列維護!TAT
C. Amr and Chemistry
首先,我們可以計算由x變為y的代價。O(1)
于是我枚舉了\(a_0\)可以變為哪些數(最多\(m^2\)個,m是二進制的位數),然后O(n)統計大家都變為這個數需要的步數。所有情況取最小值就是答案。時間復雜度\(O(m^2n)\)。
神奇的樹:
(不是我畫的)
然后我們可以做樹DP,O(n)就可以啦。
D. Guess Your Way Out! II
首先可以發現的是,那個高度并沒有什么用,全都映射到高度為h的區間就好了。
然后就是區間交、并。
這個我是用了動態開節點的線段樹來搞的。
正常解法:
題目給出兩種信息,一是[l,r]之間沒有出口,二是有出口。如果題目說[l,r]有出口,其實等價與說[\(2^{h-1}\), l)和(r,\(2^h\))都沒出口。所以第二種信息可以變為第一種。那么只有一種信息就簡單了,排序然后貪心一下就可以了。
E. A Simple Task
主要的思想是用數據結構進行快速的計數排序!沒想到還能這么弄。
關于數據結構的話:
To solve Problem E, making a balanced binary tree that each node discribe some same character which located contigeously is much better than 26 segment trees, though both of their time complexities are O(szqlogn). It must because of the quantity of balanced binary tree is usually much less than segment tree. However, if it is sorting a long substring, balanced binary tree would delete many nodes and insert no more than 26 nodes; but the quantity of segment tree would not reduce. ——nodgd
轉載于:https://www.cnblogs.com/wangck/p/4713090.html
總結
以上是生活随笔為你收集整理的Codeforces Round #312 (Div. 2)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WinObjC?这是什么鬼?
- 下一篇: 苹果系统