2011年10月15日 星期六

[codeforces] 79 div2, 76 div2, 75 div2

跑去ACM ICPC培訓營(其實也就只是系上的幾個要參加的學生聚在一起互相討論),雖然不能參加比賽留不下什麼記錄,不過還是覺得這種東西蠻有趣的,每次的集訓時間還是跑過去自己一個人寫然後和其他兩隊討論。(另外發現我也沒辦法跟他們組隊玩,非常難跟他們溝通我的想法....orz)

codeforces的好處是你可以看到test case是什麼....雖然正式比賽看不到,去看test case到底是什麼是很不好的訓練方式,不過我也不能比賽就沒差了 XD

http://codeforces.com/contest/102

A: 一開始還以為要用什麼去找三個點兩兩相連的演算法,結果其實只要暴力法三層for就好了 囧rz (沒注意到題目範圍很小)

B: Simulation型的,照跑

C: 這題沒有頭緒,不過聽別人說是用greedy

D: 這題沒有頭緒,別人說是先對巴士行程的終點排序,但是他也不知道最後要怎麼解

E: 把座標位置都用代數寫出來的話,最後會發現是找二元聯立方程式有沒有整數解,然後只用int的話會不夠大,要用long long

http://codeforces.com/contest/94

A: 字串查表

B: 多重迴圈

C: 這題陷阱有兩個,以例子一的圖來看,如果是3->11的話,5->11只要一個方框就夠了(因為最後是空白可以超過)。另外一個是3->10的話,畫左右兩個方框就夠了

D: 一開始想很多奇怪的解法,最後發現其實只要牛奶倒滿第一個杯子就換下一杯,牛奶倒光了就換下一瓶牛奶接著到,結果就可以是對的了....另外一個解出來的人有推導出一個驗證到底倒不倒的出來的驗算方程式,但是非常難懂

E: DP。一開始還在想register只有26個不知道怎麼解,後來別人一講才知道26個根本是綽綽有餘

http://codeforces.com/contest/94

A: Simulation類,照著寫就好了

B: Simulation類,但是真的去產生那些子字串的話會太慢,用一個index表示目前字串長度就好了,另外要處理全都是1加1會進位的特殊情況。

C: 這題一開始以為是類似最長子字串的問題,不過後來別人解出來說也是Simulation類的題目(被騙了)。特別的是要把找過的f(index, char)->index這個mapping記錄起來,不然每次都重新找會太慢。

D: 從數列右端往左看,記錄目前為止看到的最小數字和出現的位置,如此每個數字可以知道他往右看可以看到最小的數字和位置是什麼。

E: 沒看

 

沒有留言: