PKU3254 corn fields

       这是一道基于状态压缩的动态规划,但应该是这类题中最简单的了。       我们按行递推,将每行的状态用二进制表示出来。这就要求我们进行预处理,记录每个状态上一行的可行状态。这样的动态规划时间复杂度极低。program corn_field; const pnum=100...

2010-10-31 18:27:00

阅读数:208

评论数:0

PKU3269 build a new barn

<br />首先我们了解到本题在一维情况时就是著名的士兵排队。当然由于汉密尔顿距离的定义,我们依旧可以如法炮制!<br />         但是我通过无数次WA法相这道题里有一些细节值得考虑。首先,题目描述中没有是要求选择点不是提供的n个点之一,最开始看反了,囧了……其次...

2010-10-30 16:15:00

阅读数:218

评论数:0

PKU1201 intervals

<br />       这是一道差分约束的图论题目,涉及到SPFA算法。<br />       首先,来了解一下所谓差分约束系统。如果我们有一系列的Ax<=b的约束条件,我们就可以通过建立约束图,寻找最短路或最长路得方法来求解这类问题。对于一个约束条件x[j]-x...

2010-10-29 09:11:00

阅读数:287

评论数:0

PKU2823 sliding window

       这是一道经典的数据结构题,可以用来为多种数据结构入门或者热身。它涉及到的数据结构有单调队列、堆结构、线段树。后两项应该是大家比较熟悉的,所以今天做讲解的是单调队列。       我们以最小值的情况为例。对于两个元素a[i]和a[j],我们假设i       根据均摊思想,单调队列的时...

2010-10-24 13:38:00

阅读数:717

评论数:0

PKU1180 Batch Scheduling

<br />       如果说想在这道题目上拿部分分(如果有这么一说)是很简单的。但是O(n)满分算法可不是一下就搞出来的。<br />       这道题需要用到斜率优化。下面就用这道题举个例子吧!<br />       首先我们列出本题的状态转移方程。对...

2010-10-21 18:37:00

阅读数:295

评论数:0

PKU1703 find them catch them

<br />         简单的并查集,但是我少打了个句号,于是无数次WA……<br />         并查集里的比较常见的题型,就是记录一个根节点和一个对立根节点。<br /><br />program Find_them_Catch_th...

2010-10-06 12:30:00

阅读数:193

评论数:0

SPOJ0196 musketeers

         经典的线性动态规划,但是状态转移并不难。         用g表示相互的胜负关系,用f表示是否可以相遇,那么当推出f[i , i+n] 时,就说明,i可以获胜。状态转移方程为f[i,j]:=f[i,k] and f[k,j] and (g[i,k] or g[j,k])。prog...

2010-10-06 12:23:00

阅读数:178

评论数:0

RQNOJ520 trade

         NOIP2009第三题也。         这道题我觉得可以用所圈加拓扑排序吧?尽管我没有尝试……我发现这种两次SPFA是很好的思路。对于这种标号修改型的数据来说基本都可以用SPFA来解决,代码也很短小。         总体思路在下面的代码中很清晰——更新从1开始的路径上的购买...

2010-10-06 09:04:00

阅读数:237

评论数:0

PKU1167 the buses

<br />         这是我印象中敲的第一个dfs-id吧……弱弱地撒花……<br />         题目大家都清楚,我觉得在中国是个信息学的书上都有……注意搜索顺序!头脑中有一棵搜索树的话,就不难发现,如果搜索当前车属于原有线路还是新线路,随着树深的增加,枝条...

2010-10-04 18:30:00

阅读数:283

评论数:0

RQNOJ521 sudoku

<br /><br />         这是noip2009 的第四题,也是一道让我心痛不已的题目……<br />         拿到题目发现这显然是一到搜索,这不难看出。可能有人用dancing links 来解这道题,我认为这确实是正解,但不得不承认da...

2010-10-04 15:50:00

阅读数:199

评论数:0

PKU1128 frame stacking

    拓扑排序,没啥好说的,直接代码之!    program Frame_Stacking; var data:array[0..30,0..30] of char; ans:array[0..30] of char; map:array['A'..'Z','A'.....

2010-10-03 14:54:00

阅读数:261

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭