今天從家里出來的時候帶了一塊巧克力放在包里,結果競賽的時候忘記吃了~~
昨晚得到通知說:“市選總共五道題,至少有兩道送分題。”
結果第一題果然是一道送分題:兩數相減,從數據規模來看不需要高精度。預計分數:100
第二題數據規模是n<=maxlongint,而且不注意的話很容易中間結果溢出,可以通過不停地求余運算避免。盡管避免了溢出,但是復雜度是O(n),如果數據不是很弱的話肯定會超時。預計分數:(50,100)
第三題是動態規劃,剛看完題目就寫出狀態轉移方程了,復雜度O(1/2n^2),數據規模n<=5000,應該不會超時。預計分數:100
第三題比較郁悶的是,因為空間復雜度是O(n^2),想通過滾動數組優化一下,但是一直沒有弄好,拐回頭一看:內存限制128M,打開計算器算了一下,不會超空間,又想改回來,結果怎么改改不對了,連樣例都通不過!猶豫了一會,急忙不停地點“撤銷”,終于該回來了!浪費了十幾分鐘……
第四題,一開始感覺像是BFS,但是又舉出了反例;動態規劃吧,第三題已經出了,而且如果DP的話,需要做四次;DFS,規模太大;騙分,給出的數據有很多內容,不好猜測……最后選擇了輸出樣例。
第五題,給出一個長度為n的序列,對最小值、最大值之間的數(不包括最大值)增加一個定值,執行此操作m次,每次輸出最小值、最大值的編號和數值,數據規模很大:n,m<=1000000。最先考慮某種樹結構,往O(mlogn)的方向思考:二叉排序樹,不支持增加某個值的操作;線段樹,RMQ問題編程復雜度太高,而且100萬的規模O(mlogn)都有可能超時啊!難道有O(m)的算法嗎?心想,不太可能。最后的做法是:模擬。
唉……市選的結果不令人滿意。
后記:
今天下午成績出來了,全市第一,但是分數卻不理想,沒達到我的目標。
想到我的高中OI生涯即將結束,不免有些感傷。單憑這一點,AOI2010我也要拼盡全力!只剩下一個月,我不知道還能夠進步多少,總之會盡力而為!