随笔分类 -  dp

摘要:题目描述: 题解:二维动态规划,状态为天数以及依次完成的任务数。注意题目给出的限制,任务需要依次执行,这为构造状态转移方程提供了先决条件。 定义dp[i][j]表示i天完成前j个任务的最小难度。状态转移的时候,遍历第i个可能完成的所有工作并取最小值就可以了,记dis[i][j]为第i个job至第j个 阅读全文
posted @ 2020-01-28 18:34 猪突猛进!!! 阅读(429) 评论(0) 推荐(0)
摘要:题目描述: 题解: dp题目,构造一个三维的dp[i][j][k]表示在i位置时,左手在j字母上,右手在k字母上所需要移动的最小次数。 初始化的时候,dp(0,j,k)=0其他位置为正无穷。 状态转移方程。 t为word[i]对应的字母。要么左手从位置i-1移动位置到位置i,dp(i,t,k) = 阅读全文
posted @ 2020-01-13 18:59 猪突猛进!!! 阅读(308) 评论(0) 推荐(0)
摘要:题目描述: 题解:仿照LCS构建一个dp[i][j],表示s[i-1]与p[j-1]的匹配情况,dp[i][j] == 1 的时候表示完全匹配。状态转移如下: 当p[j-1]==‘*’的时候,要么'*'为空,要么‘*’匹配对应j-1位置的字符,也就是说这个时候的dp[i][j]由dp[i-1][j] 阅读全文
posted @ 2020-01-06 18:34 猪突猛进!!! 阅读(141) 评论(0) 推荐(0)
摘要:题意:中文题就不解释了 题解: dp[i][j]表示前i 个轮盘 和一个字符串前j 个字符的匹配情况 ,具体的状态转移解释见代码 阅读全文
posted @ 2018-02-26 18:41 猪突猛进!!! 阅读(175) 评论(0) 推荐(0)
摘要:在一个星光摧残的夜晚,蒜头君一颗一颗的数这天上的星星。 蒜头君给在天上巧妙的画了一个直角坐标系,让所有的星星都分布在第一象。天上有 nn 颗星星,他能知道每一颗星星的坐标和亮度。 现在,蒜头君问自己 qq 次,每次他问自己每个矩形区域的星星的亮度和是多少(包含边界上的星星)。 输入格式 第一行输入一 阅读全文
posted @ 2018-01-22 19:02 猪突猛进!!! 阅读(296) 评论(0) 推荐(0)
摘要:思路:考虑全部铺满时,前2列的放法。有如下5种情况:(转自http://blog.csdn.net/elbadaernu/article/details/77825979 写的很详细 膜一下) 假设f(n)表示列数为n时的方案数,那么这五种情况合法的方案数相加即f(n)。这里n大于2. 第一种的方案 阅读全文
posted @ 2017-10-28 19:16 猪突猛进!!! 阅读(248) 评论(0) 推荐(0)
摘要:题意:中文题。。。 题解:状态比较多,可以说是状压的基础题吧,我们定义dp[i][j],j为一个二进制数,每位0表示接触过该物品,1表示没有接触过;j表示当前物品在谁手上。递推的顺序注意一下就好 ac代码: 阅读全文
posted @ 2017-10-24 18:50 猪突猛进!!! 阅读(248) 评论(0) 推荐(0)
摘要:大概题意是:有一个n*m的棋盘,在这个棋盘里边放k个旗子,要求每一行每一列都不能存在一对旗子相邻,问最后总共的方案数。 我们先来考虑个简单的,假如说只有一行,要求在这一行里边填充k个旗子,要求任意两个都不相邻,这个时候的dp应该怎么表示?这就很简单了,直接就是dp[i][j][x],代表已经到了第i 阅读全文
posted @ 2017-10-18 19:51 猪突猛进!!! 阅读(213) 评论(0) 推荐(0)
摘要:题意:有三种三色的岛,用a,b,c来标识这三种岛。然后规定,同种颜色的岛不能相连,而且同种颜色的岛不能和同一个其他颜色的岛相连。问有多少种建桥的方法。 题解:em....dp。我们先看两个岛之间怎么个连法。由题意可得岛与岛之间的链接是单射,我们定义f[a][b],表示有a个颜色1的岛和b个颜色2的岛 阅读全文
posted @ 2017-10-08 16:27 猪突猛进!!! 阅读(252) 评论(0) 推荐(0)
摘要:最长非递减子序列变形题,把大于等于10000的copy五次放回去就可以了 ac代码: 阅读全文
posted @ 2017-09-25 09:41 猪突猛进!!! 阅读(161) 评论(0) 推荐(0)
摘要:正反跑一次LIS,取最大的长度,如果长度大于n-k就满足条件。 ac代码: 心情不太好,过来这么久才整理代码。 感情这个东西,比算法难多了 阅读全文
posted @ 2017-09-13 12:13 猪突猛进!!! 阅读(171) 评论(0) 推荐(0)
摘要:题意:给你n对pair 里面有两个值,分别是key 和 val 。你可以取相邻的两个pair 获得其中的val,前提是两个pair 的key 的 gcd 不为 1。当然你把相邻的两个取走了之后原本不相邻的两个就变得相邻了。比如:你将下标为 2,3 取走之后,下标1,4就变得相邻了,求你可以获得的最大 阅读全文
posted @ 2017-09-05 09:12 猪突猛进!!! 阅读(128) 评论(0) 推荐(0)
摘要:题目大意是说一个字符串,每插入或者删除一个字符都需要一定的代价,问怎样可以使这个字符串变成一个回文串,且花费最小。 题解:我们定义一个dp[i][j]表明区间i~j为回文串的最小花费,由于插入和删除都是可以任意位置进行的,所以无后效性。然后状态转移和以前的回文串的状态转移差不多。 (新的理解,搞回文 阅读全文
posted @ 2017-09-02 14:55 猪突猛进!!! 阅读(277) 评论(0) 推荐(0)
摘要:题目:http://acm.hdu.edu.cn/showproblem.php?pid=4745 题解:首先要抽象出题目要求的是啥。首先对于环的问题, 我们可以倍增成链,然后环的所有情况可以通过链来解决。这道题目由于不用越过自己走过的石头,所以2*n的链就覆盖了所有情况了。然后对于每种情况,要求两 阅读全文
posted @ 2017-09-01 14:23 猪突猛进!!! 阅读(89) 评论(0) 推荐(0)
摘要:状态转移方程如下: 当i > j时,dp[i,j]= 0。 当i = j时,dp[i,j] = 1。 当i < j并且str[i] == str[j]时,dp[i][j] = dp[i+1][j-1]+2; 当i < j并且str[i] ≠ str[j]时,dp[i][j] = max(dp[i][ 阅读全文
posted @ 2017-08-29 19:32 猪突猛进!!! 阅读(233) 评论(0) 推荐(0)
摘要:Description We give the following inductive definition of a “regular brackets” sequence: the empty sequence is a regular brackets sequence, if s is a 阅读全文
posted @ 2017-08-29 11:25 猪突猛进!!! 阅读(130) 评论(0) 推荐(0)
摘要:题目:http://acm.hdu.edu.cn/showproblem.php?pid=5230 题意:给定n,c,l,r。求有多少种方法从1~n-1选取任意k数每个数的权重为其下标,使得这些数字之和加上c之后在l,r范围内。 题解:第一反应是计数01包,但是范围给定的n太大,TLE。。。 然后仔 阅读全文
posted @ 2017-08-27 16:35 猪突猛进!!! 阅读(176) 评论(0) 推荐(0)
摘要:1.将n个不同的数字组成的集合划分成若干个元素每个元素不大于m的集合: 2.将n划分成k个数的划分法: 另一种方式: hzwer思路 Orz 拓展:还有一个划分为不超过k组的问题 阅读全文
posted @ 2017-08-27 15:57 猪突猛进!!! 阅读(249) 评论(0) 推荐(0)
摘要:题意:给你n个挂钩,m个砝码,要求砝码都用上,问有多少中方案数 题解:对于这道题目的状态,我们定义一个变量j为平衡度,当j=0的时候,表明天平平衡。定义dp[i][j]表达的含义为使用前n个砝码的时候,平衡度为j的方案数。计数类型的背包,更新的时候把每个砝码的所有可能贡献(每个砝码可以放在不同的钩子 阅读全文
posted @ 2017-08-25 17:11 猪突猛进!!! 阅读(218) 评论(0) 推荐(0)
摘要:题意: 给出两个字符串,第一个字符串只包含小写或者大写字母,第二个字符串包含小写或者大写字母或者特殊字符“.”和“*”,这里“.”可以替换为任意字符,但是不能变成空。 这里“a*”可以变成空串,可以变成a,也可以是aa,也可以是aaa,还可以是aaaa.以此类推,不限长度。 问第二个串和第一个串是否 阅读全文
posted @ 2017-08-23 11:12 猪突猛进!!! 阅读(259) 评论(0) 推荐(0)