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

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

上一页 1 2 3 4 5 6 7 8 9 10 ··· 12 下一页
HDU 1078 FatMouse and Cheese (记忆化搜索)

摘要:题意:给定一个n*n的矩阵,问从(0,0)开始走,每次最多水平或者垂直走k个格子,且要保证每次到达的格子要大于前一个,问最大和是多少。 析:一个很简单的记忆搜索,dp[i][j],表示到达(i,j)的最大和是多少,我们可以反着推出答案。 代码如下: 阅读全文
posted @ 2017-04-12 22:18 dwtfukgv 阅读(173) 评论(0) 推荐(0)
HDU 5542 The Battle of Chibi (离散化+树状数组优化DP)

摘要:题意:求n个数中长度为m的上升子序列的个数。 析:很容易想到一个n的三次方的DP,dp[i][j]表示第 i 个数长度为 j 的LIS 有多少个,但是会TLE,因此必须优化,dp[i][j] = sum{dp[k][j-1] | a[i] > a[k]} 我们可以用树状数组优化,当然用线段树也OK, 阅读全文
posted @ 2017-04-06 11:28 dwtfukgv 阅读(271) 评论(0) 推荐(0)
L2-014. 列车调度 (DP)

摘要:火车站的列车调度铁轨的结构如下图所示。 Figure 两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道。每趟列车从入口可以选择任意一条轨道进入,最后从出口离开。在图中有9趟列车,在入口处按照{8,4,2,5,3,9,1,6,7}的顺序排队等待进入。如果要 阅读全文
posted @ 2017-03-23 16:39 dwtfukgv 阅读(380) 评论(0) 推荐(0)
UVa 10564 Paths through the Hourglass (DP)

摘要:题意:从最上面走到最下面,使得路过的数求和为s,并输出编号最小的一组路径。 析:基本动规,dp[i][j][s] 从最下面到 i,j 和为s,路径数,要么从左面要么从右,求和就好了,注意上面和下面的不太一样,要分别求解。 代码如下: 阅读全文
posted @ 2017-03-22 21:02 dwtfukgv 阅读(108) 评论(0) 推荐(0)
UVaLive 3530 Martian Mining (简单DP)

摘要:题意:给定一个n*m的网格,每个格子里有A矿和B矿数量,A必须由右向左运,B只能从下向上运,中间不能间断,问最大总数量。 析:一个简单DP,dp[i][j] 表示 从 (0, 0) 到 (i, j) 最大人运输量。要么向左运输,要么向上运输,取最大值。 代码如下: 阅读全文
posted @ 2017-03-22 20:56 dwtfukgv 阅读(127) 评论(0) 推荐(0)
POJ 3280 Cheapest Palindrome (区间DP)

摘要:题意:字串S长M,由N个小写字母构成。欲通过增删字母将其变为回文串,增删特定字母花费不同,求最小花费。 析:是一个简单DP,dp[i][j] 表示区间 i - j 是回文串的最小花费,很容易知道,删除和添加效果是一样的,所以我们就可以只取一个最小值就好。 做的时候我的初始化在外面,就一直WA。 代码 阅读全文
posted @ 2017-03-20 17:57 dwtfukgv 阅读(107) 评论(0) 推荐(0)
UVaLive 4731 Cellular Network (期望DP)

摘要:题意:手机在蜂窝网络中的定位是一个基本问题,假设蜂窝网络已经得知手机处于c1,c2,,,cn这些区域中的一个,最简单的方法是同时在这些区域中寻找手机, 但这样做很浪费带宽,由于蜂窝网络中可以得知手机在这不同区域中的概率,因此一个折中的办法就是把这些区域分成w组,然后依次访问,求最小的访问区域数的期望 阅读全文
posted @ 2017-03-16 15:52 dwtfukgv 阅读(159) 评论(0) 推荐(0)
UVa 11404 Palindromic Subsequence (LCS)

摘要:题意:给定一个字符串,问删除一些字符,使得它成为一个最长回访串,如果有多个,输出字典序最小的那个。 析: 我们可以把原字符串反转,然后求两个串的LCS,就得到最长回文串,不过要注意一些细节。 代码如下: 阅读全文
posted @ 2017-03-16 14:47 dwtfukgv 阅读(204) 评论(0) 推荐(0)
UVa 11552 Fewest Flops (DP)

摘要:题意:给一个字符串,把它分为k块,每一块里面的字母可以任意的排序。最终字符串, 连续的一样的字母算作一个chunk,问总chunks最少是多少? 析:dp[i][j] 表示第 i 个块,第 j 位在末尾时chunk最少,状态转移方程也应该好写,如果 dp[i-1][j] 和第 i 块第一个一样,那么 阅读全文
posted @ 2017-03-16 14:38 dwtfukgv 阅读(138) 评论(0) 推荐(0)
UVa 10534 Wavio Sequence (LIS+暴力)

摘要:题意:给定一个序列,求一个最长子序列,使得序列长度为奇数,并且前一半严格递增,后一半严格递减。 析:先正向和逆向分别求一次LIS,然后再枚举中间的那个数,找得最长的那个序列。 代码如下: 阅读全文
posted @ 2017-03-16 12:06 dwtfukgv 阅读(157) 评论(0) 推荐(0)
UVaLive 4256 Salesmen (简单DP)

摘要:题意:给一个无向连通图,和一个序列,修改尽量少的数,使得相邻两个数要么相等,要么相邻。 析:dp[i][j] 表示第 i 个数改成 j 时满足条件。然后就很容易了。 代码如下: 阅读全文
posted @ 2017-03-16 11:54 dwtfukgv 阅读(172) 评论(0) 推荐(0)
UVaLive 3983 Robotruck (DP + 单调队列)

摘要:题意:有n个垃圾,第i个垃圾坐标为(xi,yi),重量为wi,有一个机器人,要按照编号从小到大的顺序剑气所有的垃圾兵扔进垃圾桶,垃圾桶在原点, 每次总重量不能超过C,两点间距离为曼哈顿距离,求出最短的距离和。 析:第一反应想到的状态是有个数和重量,一看,时间复杂度受不了,只能改。dp[i] 表示从原 阅读全文
posted @ 2017-03-10 16:57 dwtfukgv 阅读(214) 评论(0) 推荐(0)
UVaLive 10859 Placing Lampposts (树形DP)

摘要:题意:给定一个无向无环图,要在一些顶点上放灯使得每条边都能被照亮,问灯的最少数,并且被两盏灯照亮边数尽量多。 析:其实就是一个森林,由于是独立的,所以我们可以单独来看每棵树,dp[i][0] 表示不在 i 点放灯,dp[i][1] 表示在 i 点放灯,很简单的一个DP 代码如下: 阅读全文
posted @ 2017-03-10 14:33 dwtfukgv 阅读(125) 评论(0) 推荐(0)
UVa 11825 Hackers' Crackdown (状压DP)

摘要:题意:给定 n 个计算机的一个关系图,你可以停止每台计算机的一项服务,并且和该计算机相邻的计算机也会终止,问你最多能终止多少服务。 析:这个题意思就是说把 n 台计算机尽可能多的分成一些组,使得每组的的 u 是全集。我们可以用状压DP来解决,先处理输入,然后再处理每个子集, dp[s] 表示状态为 阅读全文
posted @ 2017-03-10 13:55 dwtfukgv 阅读(132) 评论(0) 推荐(0)
UVa 10891 Game of Sum (DP)

摘要:题意:给定一个长度为n的整数序列,两个人轮流从左端或者右端拿数,A先取,问最后A的得分-B的得分的结果。 析:dp[i][j] 表示序列 i~j 时先手得分的最大值,然后两种决策,要么从左端拿,要么从右端拿,肯定是拿的是最大的。 代码如下: 阅读全文
posted @ 2017-03-10 11:34 dwtfukgv 阅读(103) 评论(0) 推荐(0)
CodeForces 349B Color the Fence (DP)

摘要:题意:给出1~9数字对应的费用以及一定的费用,让你输出所选的数字所能组合出的最大的数值。 析:DP,和01背包差不多的,dp[i] 表示费用最大为 i 时,最多多少位,然后再用两个数组,一个记录路径,一个记录是数字几即可。 代码如下: 阅读全文
posted @ 2017-03-08 20:24 dwtfukgv 阅读(167) 评论(0) 推荐(0)
POJ 2184 Cow Exhibition (01背包)

摘要:题意:每行给出si和fi,代表牛的两个属性,然后要求选出几头牛,是的则求出总S与总F的和,注意S与F都不能为负数 析:用dp[i]来表示存放s[i]的时最大的f[i],其实就是一个01背包。只是取不取的关系。注意是有负数,所以把数组开大一点,然后s[i]的正负数, 我们取的顺序不同,正数是逆向,负数 阅读全文
posted @ 2017-03-05 22:24 dwtfukgv 阅读(114) 评论(0) 推荐(0)
UVa 1627 Team them up! (01背包+二分图)

摘要:题意:给n个分成两个组,保证每个组的人都相互认识,并且两组人数相差最少,给出一种方案。 析:首先我们可以知道如果某两个人不认识,那么他们肯定在不同的分组中,所以我们可以根据这个结论构造成一个图,如果两个不相互认识, 那么就加一条边,然后如果这个图是二分图,那么这分组是可以,否则就是不可能的。然后dp 阅读全文
posted @ 2017-03-02 18:08 dwtfukgv 阅读(304) 评论(0) 推荐(0)
UVa 1412 Fund Management (预处理+状压DP)

摘要:题意:题意很难说清楚自己看原文,链接:UVa 1412 Fund Management 析:总体来说如果没有超时的话,这个题不是特别难,但是这个题很容易超时,主要是体现在状态转移时,很容易想到状态方程表示方法, dp[i][s]表示第 i 天时状态为s时能获得的最大值,转移方程也很容易,三种决策,要 阅读全文
posted @ 2017-02-28 21:41 dwtfukgv 阅读(391) 评论(0) 推荐(0)
UVa 12105 Bigger is Better (DP)

摘要:题意:用不超过 n 根火柴,组成一个尽可能大的数。 析:很明显的一个DP题,首先不难想到这个dp[i][j] 表示前 i 根火柴,所能拼出的取模 m 为 j 的数,状态转移方程也很好写, dp[i][j] ==> dp[i+c[k]][(j*10+k)%m] 其中 k 为在后面添加的数,c 数组是用 阅读全文
posted @ 2017-02-23 23:47 dwtfukgv 阅读(318) 评论(0) 推荐(0)

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