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

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

上一页 1 2 3 4 5 6 7 8 ··· 12 下一页
HDU 6156 Palindrome Function (数位DP)

摘要:题意:给定上 l,r,a, b,让你求从 l 到 r 这个区间内的在a进制到b进制如果是回文数就加上该进制的大小,如果不是,那么就加上1. 析:数位DP。 dp[i][j][k] 表示 i 进制下,前 j 位,回文串的长度是k有多少个,然后统计完后,再乘以进制即可,最后再加上那些不是回文。 但是好像 阅读全文
posted @ 2017-08-19 19:13 dwtfukgv 阅读(266) 评论(0) 推荐(0)
HDU 6148 Valley Numer (数位DP)

摘要:题意:。。。 析:好久没写数位DP了,几乎就是不会了。。。。 dp[i][last][s] 表示前 i 位上一位是 last,当前的状态是 s,0表示非上升,1 表示非下降,然后就很简单了,只有 0 能转成 1,1就是最后的状态。 代码如下: 阅读全文
posted @ 2017-08-18 19:44 dwtfukgv 阅读(205) 评论(0) 推荐(0)
HDU 6125 Free from square (状压DP+背包)

摘要:题意:问你从 1 - n 至多选 m 个数使得他们的乘积不能整除完全平方数。 析:首先不能整除完全平方数,那么选的数肯定不能是完全平方数,然后选择的数也不能相同的质因子。 对于1-500有的质因子至多出现一次,有的可能出现多次,比如23,对于一个数最多出现一次,因为出现两次就超出500了。 而对于比 阅读全文
posted @ 2017-08-18 00:12 dwtfukgv 阅读(296) 评论(0) 推荐(0)
CodeForces 219D Choosing Capital for Treeland (树形DP)

摘要:题意:给一个n节点的有向无环图,要找一个这样的点:该点到其它n-1要逆转的道路最少。 析:很明显的树形DP,两次dfs,对于边,进行处理,如果是正向就是1,反向是-1,先进行dfs,计算出向子结点的方向要反转几条边,然后再第二次考虑,从父结点和子结点考虑。 代码如下: 阅读全文
posted @ 2017-08-13 13:56 dwtfukgv 阅读(189) 评论(0) 推荐(0)
ZOJ 3201 Tree of Tree (树形DP)

摘要:题意:给定一棵树,求大小为k的一个子树的最大权值。 析:dp[i][j] 表示以 i 为根大小为 j 时最大权值。dp[i][j] = max{dp[i][j-k] + dp[son][k]},状态方程。 有一个要注意,因为要选的是一棵子树,所以以哪个点为根都行,也就是说,对于任意子树都能找一个合适 阅读全文
posted @ 2017-08-12 21:08 dwtfukgv 阅读(270) 评论(0) 推荐(0)
HDU 5834 Magic boy Bi Luo with his excited tree (树形DP)

摘要:题意:给定一棵树,每个点有个权值,每条边有权值,每经过边都会消耗相应的权值,但是点的权值只能获得一次,问你从 i 点出发能获得的最大权值是多少。 析:树形DP,就是太麻烦了,两次dfs,维护一共6个值分别是,从 i 出发的最大值并且返回 i, 从 i 出发的最大值并且不返回,从 i 出发的次大值并且 阅读全文
posted @ 2017-08-12 13:35 dwtfukgv 阅读(394) 评论(0) 推荐(0)
POJ 3709 K-Anonymous Sequence (斜率优化DP)

摘要:题意:有一个不递减的序列,现在要把这些数分成若干个部分,每部分不能少于m个数。每部分的权值为所有数减去该部分最小的数的和。求最小的总权值。 析:状态方程很容易写出来,dp[i] = min{dp[j] + sum[i] - sum[j] - (i-j)*a[j+1] },然而这个复杂度是 O(n^2 阅读全文
posted @ 2017-08-09 21:15 dwtfukgv 阅读(204) 评论(0) 推荐(0)
LightOJ 1065 Island of Survival (概率DP?)

摘要:题意:有 t 只老虎,d只鹿,还有一个人,每天都要有两个生物碰面,1.老虎和老虎碰面,两只老虎就会同归于尽 2.老虎和人碰面或者和鹿碰面,老虎都会吃掉对方 3.人和鹿碰面,人可以选择杀或者不杀该鹿4.鹿和鹿碰面,没事问人存活下来的概率 析:最后存活肯定是老虎没了,首先可以用概率dp来解决,dp[i] 阅读全文
posted @ 2017-08-09 18:27 dwtfukgv 阅读(253) 评论(0) 推荐(0)
LightOJ 1248 Dice (III) (水题,期望DP)

摘要:题意:给出一个n面的色子,问看到每个面的投掷次数期望是多少。 析:这个题很水啊,就是他解释样例解释的太。。。我鄙视他,,,,, dp[i] 表示 已经看到 i 面的期望是多少,然后两种选择一种是看到新的一面,另一种是看到旧的一面,然后就很出答案了。 代码如下: 阅读全文
posted @ 2017-08-09 17:05 dwtfukgv 阅读(185) 评论(0) 推荐(0)
LightOJ 1079 Just another Robbery (01背包)

摘要:题意:给定一个人抢劫每个银行的被抓的概率和该银行的钱数,问你在他在不被抓的情况下,能抢劫的最多数量。 析:01背包,用钱数作背包容量,dp[j] = max(dp[j], dp[j-a[i] * (1.0 - pp[i])),dp[i] 表示不被抓的最大概率,在能抢劫到 i 个钱。 代码如下: 阅读全文
posted @ 2017-08-09 16:13 dwtfukgv 阅读(222) 评论(0) 推荐(0)
LightOJ 1038 Race to 1 Again (概率DP,记忆化搜索)

摘要:题意:给定一个数 n,然后每次除以他的一个因数,如果除到1则结束,问期望是多少。 析:概率DP,可以用记忆公搜索来做,dp[i] = 1/m*sum(dp[j] + 1) + 1/m * (dp[i] + 1) ==> dp[i] = (sum(dp[j]) + m) / (m-1)。其中m是因数个 阅读全文
posted @ 2017-08-09 15:18 dwtfukgv 阅读(189) 评论(0) 推荐(0)
LightOJ 1027 A Dangerous Maze (数学期望)

摘要:题意:你面前有 n 个门,每次你可以选择任意一个进去,如果xi是正数,你将在xi后出去,如果xi是负数,那么xi后你将回来并且丢失所有记忆,问你出去的期望。 析:两种情况,第一种是直接出去,期望就是 1/n * xi 第二种是回来了,再出去 1/n*(-xi+E), 然后就可以得到 E = sum 阅读全文
posted @ 2017-08-09 14:02 dwtfukgv 阅读(218) 评论(0) 推荐(0)
CodeForces 489E Hiking (二分+DP)

摘要:题意: 一个人在起点0,有n个休息点,每个点有两个数值,分别表示距离起点的距离xi,以及所获得的愉悦值bi,这个人打算每天走L距离,但实际情况不允许他这么做。定义总体失望值val = sum(sqrt(Ri - L)) / sum(bi); 现在要使得val最小(这个人必须要到达最终的节点)。 析: 阅读全文
posted @ 2017-08-08 11:08 dwtfukgv 阅读(365) 评论(0) 推荐(0)
HDU 2829 Lawrence (斜率优化DP或四边形不等式优化DP)

摘要:题意:给定 n 个数,要你将其分成m + 1组,要求每组数必须是连续的而且要求得到的价值最小。一组数的价值定义为该组内任意两个数乘积之和,如果某组中仅有一个数,那么该组数的价值为0。 析:DP状态方程很容易想出来,dp[i][j] 表示前 j 个数分成 i 组。但是复杂度是三次方的,肯定会超时,就要 阅读全文
posted @ 2017-08-06 22:59 dwtfukgv 阅读(325) 评论(0) 推荐(0)
POJ 1160 Post Office (四边形不等式优化DP)

摘要:题意: 给出m个村庄及其距离,给出n个邮局,要求怎么建n个邮局使代价最小。 析:一般的状态方程很容易写出,dp[i][j] = min{dp[i-1][k] + w[k+1][j]},表示前 j 个村庄用 k 个邮局距离最小,w可以先预处理出来O(n^2),但是这个方程很明显是O(n^3),但是因为 阅读全文
posted @ 2017-08-05 17:09 dwtfukgv 阅读(227) 评论(0) 推荐(0)
HDU 3507 Print Article (斜率DP)

摘要:题意:要输出N个数字a[N],输出的时候可以连续连续的输出,每连续输出一串,它的费用是 “这串数字和的平方加上一个常数M”。 析:这个题很容易想到DP方程dp[i] = min{dp[j] + M + (sum[i]-sum[j])^2},但是很明显是O(n^2),TLE是必然的,所以要进行优化。 阅读全文
posted @ 2017-08-05 11:19 dwtfukgv 阅读(165) 评论(0) 推荐(0)
UVa 1625 Color Length (DP)

摘要:题意:给定两个序列,让你组成一个新的序列,让两个相同字符的位置最大差之和最小。组成方式只能从一个序列前部拿出一个字符放到新序列中。 析:这个题状态表示和转移很容易想到,主要是在处理上面,dp[i][j] 表示从第一序列中拿了 i 个字符,从第二序列中拿了 j 个字符的最小和是多少,这个要提前预处理每 阅读全文
posted @ 2017-07-31 15:27 dwtfukgv 阅读(161) 评论(0) 推荐(0)
HDU 4111 Alice and Bob (博弈+记忆化搜索)

摘要:题意:给定 n 堆石头,然后有两种操作,一种是把从任意一堆拿走一个,另一种是把一个石子放到另一堆上。 析:整体看,这个题真是不好做,dp[a][b] 表示有 a 堆1个石子,b个操作,操作是指把其他的不是1的堆全部合并起来并全部拿完所以要的操作, 要注意的是 ,一共有这几种情况。 1.a 为0,说明 阅读全文
posted @ 2017-07-28 10:27 dwtfukgv 阅读(171) 评论(0) 推荐(0)
HDU 4081 Peach Blossom Spring (最小生成树+dfs)

摘要:题意:给定一个 n 个点和相应的权值,要求你用 n-1 条边连接起来,其中一条边是魔法边,不用任何费用,其他的边是长度,求该魔法边的两端的权值与其他边费用的尽量大。 析:先求出最小生成树,然后再枚举每一条边,求出最大值,任意两点之间的距离可以通过预处理来解决,最小生成树时,要用prime算法,要不然 阅读全文
posted @ 2017-07-26 19:27 dwtfukgv 阅读(190) 评论(0) 推荐(0)
HDU 4114 Disney's FastPass (状压DP)

摘要:题意:给定 n 个区域,然后给定两个区域经过的时间,然后你有 k 个景点,然后给定个每个景点的区域和有票没票的等待时间,从哪些区域能够得到票,问你从景点1开始,最后到景点1,而且要经过看完这k个景点。 析:一个状压DP,dp[s1][s2][i] 表示已经访问了 s1 中的景点,拥有 s2 的票,当 阅读全文
posted @ 2017-07-23 22:23 dwtfukgv 阅读(268) 评论(0) 推荐(0)

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