用了大概一個半月的時間吧,當然中間有大概一個禮拜空著來著

這是第二次做USACO了,第一次是高中的時候,那個時候的題目跟現在的都不太一樣,主要是順序,而且那個時候是用PASCAL寫的

但是高中的時候沒有做完,卡在了Section 5之前,其實是因為很多東西不會,數學其實也不夠好,至于理解的能力,不知道現在是不是也有所提高了

其實這次做的并不是非常順利,我不是牛人,不可能一天掃10幾道題目那種,然后每到題目半個小時就搞定

前面3個Section的題目還都不算是很難,都是訓練型的,都是教你算法怎么用,從Section 4開始就有比較難的題目了,尤其是DP

DP從高中開始我就沒有感覺,那時候就有人跟我說,只能多做題目,也許我現在做的還不夠多吧,總感覺DP是很有用很有用的東西,所以一直想學好

不管怎么樣,USACO總算是磕磕碰碰的做完了,應該在NoCow和Google的幫助下終于做完了

后面大部分題目我都看了解題報告,有些算法想得出,但是不知道該怎么應用到題目之上

現在發現這點才是最重要的,算法模塊誰不會寫啊,都可以提前寫好一個放在那里,但是問題是怎么把這個算法應用到題目上

可能這就是所謂的建模吧,把題目變形一下,然后跟我們已知的算法聯系起來

還有另外一種情況,這個題目的算法不是已知的任何算法,要自己去想的,這才是真正考驗一個人算法素養的時候

就像TCO里面的題目,其實很多都是這樣的,很少會給你一道題目讓你直接去套一個算法的

可能原來我在這方面的理解就有偏差,我總認為,你把所有的常見算法都練熟了,所有的題目都可以橫掃

但是問題就是,你能不能看得出來哪道題目用哪種算法

而且,就像DP這種題目,就算你看出來了,狀態轉移方程你也未必寫的出來

總之還是學到了很多,雖然磕磕碰碰,但是做完了100道題還是會有收獲的

不知道下一個目標是什么SGU呢,還是TCO

其實之所以喜歡USACO的一個原因就是他會告訴你測試數據,你可以很方便的Debug

像OJ這種,不告訴你測試數據的,如果遇到了WA,你就要想破腦袋去想你的程序哪里錯了

而往往一個人自己看自己的程序的時候,是很難發現錯誤的,這就會讓人很郁悶,真的是非常郁悶

更何況,有些OJ真的是很賤的,用一些超級惡心的數據來鉆你的空子。

不知道這樣對不對,也許是考驗你的細心程度吧

SGU or TCO 呢?