摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4109给定N个指令,其中有部分指令存在先后时间上的顺序,给定m个,x, y, z 即y必须在x执行完z秒后才执行,求 最少的时间。首先根据拓扑排序找出入度为0点,处理,而对于有限制的一些点来说,dp[i] = max(dp[i],dp[j] + w) j 是i的临接点,w是i与j 的时间差。边表不是很熟,同时也练习了一下边表。。View Code #include <cstdio>#include <cstring>#include <iostream>#include & 阅读全文
posted @ 2012-04-23 21:43 E_star 阅读(250) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1463对于树形DP不大来感啊,才开始做的时候考虑成覆盖全部点了,致使我拓扑做了,WA了好几次。感觉是树形DP好像以前做过类似的题目可是就是想不出来怎么做了,看来还是不扎实。最后搜了一下解题报告,对于每一点只有放与不放两种状态,如果这一点放了士兵那么他的临接点可以放也可以不放,如果这一点没有放那么他的临接点一定放了。由此得出dp[i][0]+= dp[j][1] dp[i][1] = min(dp[j][0],dp[j][1])(j属于i的临接点) dp[i][0] 表示i点不放士兵 dp[i][1] 表示i 点放士兵。。随便由一点出发,.. 阅读全文
posted @ 2012-04-23 20:51 E_star 阅读(192) 评论(0) 推荐(0) 编辑
摘要: http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2401话说GSB 出的这个题确实不大好想,给定题意不说了。才开始我们想的是从左到右,从上往下走一边,找相邻连点两重循环找最大面积,敲出来一交WA,郁闷,才开始我们都认为这个办法对,想了很长时间,到最后ZC出了各情况直接给否定了,主要是我们没有考虑上下界问题。同样只要考虑好上下界,还是按那个思路左右上下走一边,最后求出最大值即可。View Code #include <cstdio>#include <cstring>#i 阅读全文
posted @ 2012-04-23 20:28 E_star 阅读(423) 评论(0) 推荐(0) 编辑