其实一点也不快乐。。联考跪了以后再刷快乐毛线。
但是就算是蒟蒻,总得刷对不对。
两道Poi,六七道Usaco,几乎都是水题(Poi挺有意思),没什么丰硕战果
---------------------------------------------------------------------------------------------------
Usaco:
1615: [Usaco2008 Mar]The Loathesome Hay Baler麻烦的干草打包机
dfs一下,中间做一点计算处理就好了。没什么难度。
1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛
不难得到动归方程:f[t][x][y]=sigma(f[t-1][x+dx][y+dy])
经典得不能再经典的滚动优化,可惜我滚动的时候忘记memset了。。愣是看了20分钟。
1617: [Usaco2008 Mar]River Crossing渡河问题
刚开始想成的动归方程与运送次数有关,后来想想不太对,把运送次数一维去掉了
状态表示为:f[i]表示i头奶牛运送到对岸的最小代价。
那么得到了:f[i]=min{f[j]+f[i-j]+m} 由于顺序处理,所以f[j]和f[i-j]的值已经确定,所以无后效性。
1618: [Usaco2008 Nov]Buying Hay 购买干草
比较裸的背包问题,往h以后再扫描一段距离取个最小值就好了,我取的是1000
1619: [Usaco2008 Nov]Guarding the Farm 保卫牧场
实际就是求满足条件的连通块的个数,dfs一遍标个label罢了
刚开始没有正确理解题意所以写错了,理解成了曼哈顿距离小于等于1,实际应该是小于等于2
1620: [Usaco2008 Nov]Time Management 时间管理
不难发现一个规律,一个工作最迟的结束时间,应该是下一个工作的最迟开始时间和deadline的较小值。
然而最后一个工作(其实是虚构的)的最迟开始时间是INF,可以推得倒数第一个工作的最迟结束时间,
再得到倒数第一个工作的最迟结束时间,去推倒数第二个工作....
以此类推,排序再扫描一遍即可。
1621: [Usaco2008 Open]Roads Around The Farm分岔路口
就是递归下去就好了,顶多logn的效率,一点不虚。
唯一需要注意的是不要用int直接递归,会RE,在递归底部++ans即可
Poi:
1097: [POI2007]旅游景点atr
有专门的单篇题解,出门左拐
http://blog.youkuaiyun.com/baidu_20126217/article/details/39694781
1098: [POI2007]办公楼biu
刚开始还在想是不是最大独立集,但是意识到拥有电话号码不代表不能同一栋楼啊
然后发现,每一个人必须和自己手机没有其电话号码的人同一栋工作楼,那么我们做题要用的应该是原图的反图。
剩下的交给BFS就可以了,相当于是搜连通块嘛,但是n^2的边怎么破?又不是所有边都要用是吧。
如果一些点已经确定了连通块,我们直接把它踢出BFS拓展用的考虑点集,这样可以大大加快效率。
至于删除节点什么数据结构最快最方便?链表啊。