• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
dwtfukgv
博客园    首页    新随笔    联系   管理    订阅  订阅

随笔分类 -  动态规划(DP)

上一页 1 2 3 4 5 6 7 ··· 12 下一页
POJ 2778 DNA Sequence (AC自动机+DP+矩阵)

摘要:题意:给定一些串,然后让你构造出一个长度为 m 的串,并且不包含以上串,问你有多少个。 析:很明显,如果 m 小的话 ,直接可以用DP来解决,但是 m 太大了,我们可以认为是在AC自动机图中,根据离散中的矩阵的幂可以表示 从 i 到 j 需要 x 步的有多少条。比如A[1][2]^5 = 10,表示 阅读全文
posted @ 2017-10-06 23:40 dwtfukgv 阅读(228) 评论(0) 推荐(0)
HDU 4511 小明系列故事——女友的考验 (AC自动机 + DP)

摘要:小明系列故事——女友的考验 Time Limit: 500/200 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 2024 Accepted Submission(s): 556 Prob 阅读全文
posted @ 2017-10-06 21:22 dwtfukgv 阅读(327) 评论(0) 推荐(0)
FZU 1977 Pandora adventure (DP)

摘要:题意:给定一个图,X表示不能走,O表示必须要走,*表示可走可不走,问你多少种走的法,使得形成一个回路。 析: 代码如下: 阅读全文
posted @ 2017-10-05 13:47 dwtfukgv 阅读(315) 评论(0) 推荐(0)
Ural 1519 Formula 1 (DP)

摘要:题意:给定一个 n * m 的矩阵,问你能花出多少条回路。 阅读全文
posted @ 2017-10-04 13:58 dwtfukgv 阅读(239) 评论(0) 推荐(0)
HDU 6065 RXD, tree and sequence (LCA+DP)

摘要:题意:给定上一棵树和一个排列,然后问你把这个排列分成m个连续的部分,每个部分的大小的是两两相邻的LCA的最小深度,问你最小是多少。 析:首先这个肯定是DP,然后每个部分其实就是里面最小的那个LCA的深度。很容易知道某个区间的值肯定是 [li, li+1] .. [ri-1, ri]这些区间之间的一个 阅读全文
posted @ 2017-09-29 23:07 dwtfukgv 阅读(305) 评论(0) 推荐(0)
HDU 1693 Eat the Trees (插头DP)

摘要:题意:给定一个01矩阵,问你能画出几条回路,使得包含所有的1。 析:一个插头DP,dp[i][j][s] 表示转移到 (i, j) 这个格子,状态为 s 时的方案数,然后逐格递推。对于每个格子要么有0个插头要么有2个。 代码如下: 阅读全文
posted @ 2017-09-28 21:27 dwtfukgv 阅读(162) 评论(0) 推荐(0)
Gym 101201H Paint (离散化+DP)

摘要:题意:给定 n 个区间,让你选出一些,使得每个选出区间不交叉,并且覆盖区间最大。 析:最容易想到的先是离散化,然后最先想到的就是 O(n^2)的复杂度,dp[i] = max(dp[j] + a[i].r - a[i].l) 区间不相交,这个可以用线段树来维护一个最大值,因为有区间性,但是也可以不用 阅读全文
posted @ 2017-09-24 09:05 dwtfukgv 阅读(219) 评论(0) 推荐(0)
HDU 5117 Fluorescent (数学+状压DP)

摘要:题意:有 n 个灯,初始状态都是关闭,有m个开关,每个开关都控制若干个。问在m个开关按下与否的2^m的情况中,求每种情况下亮灯数量的立方和。 析:首先,如果直接做的话,时间复杂度无法接受,所以要对其进行小小的变形,设开灯数X,和每个开关的状态的对应关系是X = x1+x2+...+xn,其中 xi 阅读全文
posted @ 2017-09-20 20:22 dwtfukgv 阅读(334) 评论(0) 推荐(0)
UVa 12093 Protecting Zonk (树形DP)

摘要:题意:给定一个有n个节点的无根树,有两种装置A和B,每种都有无限多个。在某个节点X使用A装置需要C1的花费,并且此时与节点X相连的边都被覆盖。在某个节点X使用B装置需要C2的花费,并且此时与节点X相连的边以及与X相连的点相连的边都被覆盖。求覆盖所有边的最小花费。 析:树形DP,这是一个比较难想的, 阅读全文
posted @ 2017-09-15 17:50 dwtfukgv 阅读(290) 评论(0) 推荐(0)
HDU 6201 transaction transaction transaction (树形DP)

摘要:题意:给定一棵树,每个点有一个点权,每条边也是,找一条路径,问你 T-S-sum,T表示路径的终点的权值,S表示路径始点的权值,sum表示从S到T的边权和。 析:把这一条路径拆开来看,那么就是必然是从 a 先经过一个公共祖先 i,然后再到达b,所以,dp[i][0] 表示 从 i 结点到子树结点中能 阅读全文
posted @ 2017-09-11 17:22 dwtfukgv 阅读(187) 评论(0) 推荐(0)
POJ 2152 Fire (树形DP)

摘要:题意:给定一棵树,要建立一些消防站,并且每个结点到最近一个的消防站的距离不能超过limit i,在每个结点建立消防站要花一定的费用cost i,求最少的花费是多少。 析:想了很久,确实是没想出来怎么做,dp[i][j] 表示 i 结点依赖 j 结点的最小花费,然后ans[i] 表示 以 i 为根结点 阅读全文
posted @ 2017-09-06 21:04 dwtfukgv 阅读(192) 评论(0) 推荐(0)
HDU 5781 ATM Mechine (期望DP)

摘要:题意:你有一些钱数量在 0 ~ n 之间,然后你要取钱,但是如果取的钱数超过你的钱数,会被警告,问警告不超过m次,把钱取走的期望是多少。 析:dp[i][j] 表示钱在 0 ~ i,然后最多 j 次警告,根据二分的思想,j 最大是11,然后每次取 k 元,分为两种情况,一种是钱数不小于k,那么就会被 阅读全文
posted @ 2017-09-04 19:46 dwtfukgv 阅读(160) 评论(0) 推荐(0)
HDU 5791 Two (DP)

摘要:题意:给定两个串,让你求出,两个串字串,相同的个数。 析:dp[i][j] 表示 第一个第 i 个位置,第二串第 j 个位置,有多少相同的串, 如果 a[i] == b[j] 那么 dp[i][j] = dp[i-1][j-1] + dp[i-1][j] + dp[i][j-1] - dp[i-1] 阅读全文
posted @ 2017-09-03 11:28 dwtfukgv 阅读(145) 评论(0) 推荐(0)
UVa 11324 The Largest Clique (强连通分量+DP)

摘要:题意:给定一个有向图,求一个最大的结点集,使得任意两个结点,要么 u 能到 v,要么 v 到u。 析:首先,如果是同一个连通分量,那么要么全选,要么全不选,然后我们就可以先把强连通分量先求出来,然后缩成一个点,然后该图就成了一个DAG,然后就可以直接用DP来做了。 代码如下: 阅读全文
posted @ 2017-08-29 10:25 dwtfukgv 阅读(182) 评论(0) 推荐(0)
HDU 6006 Engineer Assignment (状压DP)

摘要:题意:一共有n个任务,完成某个任务需要会一些领域的人,一共有m个工程师,每个工程师会一些领域,问这些工程师最多完成多少任务。 析:一个简单的状压DP,在比赛,算着时间复杂度过不了,结果才15ms,说一下思路,先预处理每个工程能有哪几种工程师来完成,然后dp[i][s] 表示前 i 个任务,工程师状态 阅读全文
posted @ 2017-08-28 21:55 dwtfukgv 阅读(178) 评论(0) 推荐(0)
HDU 6007 Mr. Panda and Crystal (背包+spfa)

摘要:题意:你生活在一个魔法大陆上,你有n 魔力, 这个大陆上有m 种魔法水晶,还有n 种合成水晶的方式,每种水晶价格告诉你,并且告诉你哪些水晶你能直接造出来,哪些你必须合成才能造出来,问你n魔力最多能卖多少钱的水晶? 析:首先知道的是,如果每个所消耗的魔法水晶固定,那么这就是一个背包问题,很简单就能搞定 阅读全文
posted @ 2017-08-28 21:50 dwtfukgv 阅读(203) 评论(0) 推荐(0)
UVa 12099 The Bookcase (DP)

摘要:题意:有 n 本书,每本书有一个高度和宽度,然后让你制作一个3层的书架,可以放下所有的书,并且要高*宽尽量小。 析:先把所有的书按高度进行排序,然后dp[i][j][k] 表示 前 i 本书,第二 层的宽度是 j,第三层的宽度是 k,第二层和第三层的高度最小,首先我们可以先最高的那本书放到第一层,那 阅读全文
posted @ 2017-08-27 10:48 dwtfukgv 阅读(362) 评论(0) 推荐(0)
HDU 6170 Two strings (DP)

摘要:题意:给定两个字符串,问你是不是匹配,这不是完全的正则表达式,而且题意有点模糊,'.'能匹配任意字符。'*'能匹配前面一个字符重复0-无数多次,如果是 . * 这样的是先匹配 .,再匹配*。 析:dp[i][j] 表示 第一个串匹配到 i 第二串匹配到 j,是不是能。 如果是a[i] == b[j] 阅读全文
posted @ 2017-08-24 20:15 dwtfukgv 阅读(212) 评论(0) 推荐(0)
HDU 5977 Garden of Eden (树分治+状态压缩)

摘要:题意:给一棵节点数为n,节点种类为k的无根树,问其中有多少种不同的简单路径,可以满足路径上经过所有k种类型的点? 析:对于路径,就是两类,第一种情况,就是跨过根结点,第二种是不跨过根结点,分别讨论就好,由于结点比较大,所以采用分治来进行处理,优先选取重点作为划分的依据。 代码如下: 阅读全文
posted @ 2017-08-23 20:52 dwtfukgv 阅读(216) 评论(0) 推荐(0)
HDU 3586 Information Disturbing (树形DP+二分)

摘要:题意:给出n个士兵,其中1号为指挥官,关系为树状结构,叶子为先锋,现在要在总花费小于等于m的情况切断所有的先锋与指挥官的联系,问最大的限制最小为多少。 析:很明显是一个树形DP,但是限制怎么求呢,就是通过二分,然后变成一个判定性问题,dp[i] 表示切断 以 i 的子树的最少花费不多少,当然是不超过 阅读全文
posted @ 2017-08-22 10:23 dwtfukgv 阅读(174) 评论(0) 推荐(0)

上一页 1 2 3 4 5 6 7 ··· 12 下一页
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3