- 博客(10)
- 收藏
- 关注
转载 TYVJ P1064 题解
个人感觉这个题不错,是传说中的DP+MST。 用f[i]表示到第i天的最小价值,那么就有转移 从第j天改变方案持续到第i天,那么就是f[j-1]+cos*(j-i+1)*v+k。 其中的cos用kruscal求得。你用prim会挂啊有木有! 还有一个应该注意的是如何处理这个哪条道路有灾害。 一开始是想每条边开一个st,ed。结果发现是不行的因为每...
2011-11-05 08:39:00 113
转载 TYVJ P1505 题解
这个打砖头是很经典的题目。 一开始想着在题目给的形状上dp,结果发现这样的话会有三角形重合现象也就是动规有了后效性。 消除后效性要么转换状态,要么在状态里记录一下取数的情况。记录取数的情况,状压dp?别开玩笑了我直接搞不了。 那么只能转换一下,上网上看了别人的方法,把三角形倒过来了! 比如说样例: 2 2 3 4 8 2 7 2 ...
2011-11-02 08:48:00 116
转载 POJ 1328 题解
这个题题意是说,海上有n多岛,在海岸线上(x轴)建一个雷达能覆盖到与它距离不超过d的岛,求覆盖所有岛的最小雷达数。 当然一上来就有个思路是: 先按x排序再按y排序,每次对于一个岛,找到它最右边允许的造雷达位置,建在那,把所有的这个雷达能覆盖的岛略过。 很显然这是不对的,但是“找到它最右边的位置”却是我们后面用到的思想。 注意到能覆盖每一个岛的范围是一定的。...
2011-10-31 10:32:00 228
转载 POJ 1182 & TYVJ 1438 题解
这个题自从a了上面那道题之后就变得蛮水的。但是它的合并着实让我郁闷了一番。 考虑维护这样一个并查集: fa纪录它的父亲节点,up纪录它到根节点的距离。 那么根据每个节点mod 3的值,就可知道是那种动物。(换句话说,mod 3相同的动物,是一种动物……) 那么对于询问1 如果在同一个集合里,就计算它们的up mod 3 的值,如果相同就是真话。...
2011-10-28 08:36:00 78
转载 POJ 1988 题解
这个题做了N长时间…… 因为一开始是不会并查集的时候纪录其他东西的,然后就想自己搞一下。 一开始是只会非递归的并查集,所以开了三个数组…… a就是纪录父亲节点的,d是纪录这一堆最下面的节点的,s是记录这个点下面有多少点的。 因为是非递归,所以每次合并之后,必须从堆在上面的那一坨最下面的节点(是用d纪录的)开始再往上更新s数组,所以它是有些慢,必须要保持树的...
2011-10-26 20:43:00 130
转载 TYVJ P1061 题解
表示这个题想的很dt。 一开始就想f[i,a,b,c]表示第i个请求,三个人在a,b,c的最小代价。但是肯定是杀伤力超大任何评测机都闻风丧胆的TLE+MLE程序…… 后来就想能不能把i压缩掉,结果想了很长时间无果,发现如果第i时间那么它上一次一定有一个点是i-1要求的位置,还是不能搞,因为不知道怎嘛把i去掉…… 后来无语看了题解,发现是把a,b,c中压缩了一维,因为...
2011-10-20 11:36:00 117
转载 TYVJ P1023 题解
很久以前看过的一道dp。今天决定要A掉它。 所以开始思考,每个点有三种情况:跑步、休息或者神马也不干就那么待着。 用f[i,j]表示在第i分钟,疲劳值为j的跑出的最远距离。那么对于j>0只能由f[i-1,j-1]转移过来,因为它要跑就一直跑…… 对于f[i,0],可以等于f[i-1,0],这是神马也不干的,也可以从以前的时间休息到这,f[i,0]:=max(f...
2011-10-19 21:13:00 105
转载 POJ 1840 题解
这道题目是求sigma(ai*(xi)^3)=0 (1=<i<=5) 的方案数。其中a1~a5是已知的。 先想最暴力的五重循环,枚举x1~x5,显然会超时,我们就想先计算出前一半,把后一半移项,如果前一半的和和后一半的数互为相反数,则方案数加一。 用一个哈希维护一下这题复杂度就能降到O(100^3)。View Code const base=...
2011-10-17 19:36:00 73
转载 POJ 1274 题解
表示不提供翻译服务,看起来就费了九牛二虎之力……再加上POJ猥琐的多组数据,再加上EOF出错,再加上数据范围出错,于是我很无语的直接上题解。 因为一个牛只能住一个棚,一个棚只能装一个牛,所以牛和棚就构成了二分图的两个集合。一个牛可以住进不同的棚,一个棚可以装不同的牛,其实我们连上边就好……让最多的牛住进最多的棚,最多棚装最多的牛,...
2011-10-14 17:04:00 92
转载 POJ 3398 题解
这个题我是用树形动规做的~ f[i,0]表示i节点被儿子所覆盖的最小点数。 f[i,1]表示i节点被自己所覆盖的最小点数。 f[i,2]表示i节点被父亲所覆盖的最小点数。 然后用递归求解,说下转移方程。 设j取遍i的所有儿子 f[i,0]:=f[j,1]+sigma(min(f[k,0],f[k,1])) k是不同于j的其他儿子 f[i,1]...
2011-10-14 10:02:00 119
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人