动态规划dp
文章平均质量分 63
吃一口AC摇摇乐
这个作者很懒,什么都没留下…
展开
-
Ivan the Fool and the Probability Theory(思维+dp)
给定一个 n∗mn*mn∗m 的方格图,每个格子可以被染成黑色或白色,且与其相邻的格子(上,下,左,右)中至多只有一个与其颜色相同。求方案数。思路:这个时候大家自己画一画就发现了一个规律:相邻两行的格子颜色要么完全相同,要么完全相反。如果上面一行有两个连续相同的白色或者黑色,这个时候每一行的颜色就确定了,下一行的颜色一定与上面一行相反,所以第一行有多少种两个连续相同的颜色排法,那么就有多少种整体排法;反之,如果上面一行没有两个连续相同的颜色,那么下一行的颜色一定为黑白相间,所以此时每...原创 2022-07-11 14:13:47 · 235 阅读 · 0 评论 -
STDOJ 木木不哭┭┮﹏┭┮(DP)
STDOJ 木木不哭┭┮﹏┭┮(DP)思路:赛时看到这个题一点思路都没有,看到题解发现是一道dpdpdp,呀,dpdpdp的太妙了,天老爷呦。kkk的范围不是很大,所以我们对于该题的dp数组可以定义为一个二维数组dp[x][k]dp[x][k]dp[x][k],表示为在前x个玩具中取k个放入箱子的最小难过值。由于我们的难过值是通过两个相邻的数来计算的所以我们可以推得dp[i][j]=min(dp[i][j],dp[i−2][j−1]+a[i]−a[i−1])dp[i][j]=min(dp[i][原创 2021-08-24 21:31:12 · 117 阅读 · 0 评论 -
CF1516C Baby Ehab Partitions Again(01背包)
CF1516C Baby Ehab Partitions Again题目大意:给定 nn 长度的数组,定义一个数组是不好的,当且仅当可以把数组分成两个子序列,这两个子序列的元素之和相等。问使给定数组不是不好的最少删除几个元素,并输出被删除的元素的下标。思路:一开始想水一下水过去,评测姬哆哆嗦嗦T在了第七个点/(ㄒoㄒ)/~~好!首先当全部数之和为奇数时,他肯定不能分为两组相同的序列,所以我们直接输出No但是对于sum为偶数的情况我们又分为两种:①数组中存在奇数②数组中全部为偶数至此我们原创 2021-07-29 21:50:35 · 203 阅读 · 0 评论 -
CF1519 D. Maximum Sum of Products(双指针+思维)
D. Maximum Sum of Products题目大意:给定两个长为 n 的序列 a 和 b。你可以对 a 的一段区间翻转,也可以不翻转,要求翻转后 a 与 b 对应位置之积的和最大。即求下式的值最大:∑i=1nai∗bi\sum_{i=1}^{n}a_i*b_ii=1∑nai∗bi思路:首先考虑暴力,枚举每一个区间翻转,并进行求和,显然时间复杂度O(N3)O(N^3)O(N3)会爆哎。那不写除了暴力我还会个啥其实呢,我们还可以得出一个小小的结论,就是每次交换后的答案所改变的值原创 2021-07-29 21:19:10 · 295 阅读 · 0 评论 -
C. Unstable String(简单dp)
C. Unstable String题目大意:ttt 组询问,每次给定一个仅包含字符 111 或 000 或 ??? 字符串 sss。定义一个子串是不稳定的当且仅当子串中任意相邻两数均不相同,如 101010…101010… 或 010101…010101…。其中 ??? 可以变为 111 或 000 其中一种。请求出给定的 sss 中最多可以有的不稳定子串个数。思路:这是在学校一天晚上跟lsc聚聚hz聚聚lyy聚聚一起打的一场,当时晚上研究了好久题意,想出来一种暴力的取法,但是没有实现出来。现在原创 2021-07-09 21:47:24 · 347 阅读 · 4 评论 -
CF1525 D. Armchairs (dp)
D. Armchairs (dp)题目大意:有一排座位,其中有n2\frac{n}{2}2n的座位有人坐(值为1),其余为0,要求让每个有人做的地方都转移到没人坐的地方,每个人只能转移一次,且每次操作的代价为abs(i−j)abs(i - j)abs(i−j),要求总代价最小。思路:一开始看到题,感觉数据很小,可以贪心暴力,记录有人和没人坐的位置,然后分别标记为x1,x2,x3,x4.....xnx1,x2,x3,x4.....xnx1,x2,x3,x4.....xn, y1,y2,y3y4.原创 2021-05-26 13:14:39 · 155 阅读 · 0 评论 -
NYOJ 3087- 金主的宴会(简单dp)
一开始以为是一道搜索,写了一个简单的dfs之后发现运行超时,又试了一发bfs结果又wa了。。。后来发现是一道简单的dp。看代码叭。#include<iostream>#include<stack>#include<algorithm>#include<cstring>#include<string>#include<map>#include<cmath>#include<queue>usi..原创 2021-05-06 10:49:12 · 84 阅读 · 0 评论 -
P1002 [NOIP2002 普及组] 过河卒(简单dp)
P1002 [NOIP2002 普及组] 过河卒显然我们可以得到状态表达公式每一点的路径数目都为他左边相邻的点的路径数,与上边点的路径数之和。其次我们还需要处理无法通过的地方,通过用向量的方式对无法通过的地方打上标记即可。在初始化路径数目时我们从起点开始出发,起点所在的行和列上,在没有遇到被标记的点时都默认为有一条路径。数据较大记得开long long.#include<iostream>#include<stack>#include<algorithm&g原创 2021-05-03 16:40:22 · 209 阅读 · 0 评论