用了大概一个半月的时间吧,当然中间有大概一个礼拜空着来着

这是第二次做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 呢?