
dp
swqeaaa
有问题可以吻我
展开
-
【dp】NOI 8787 数的划分
【题目】http://noi.openjudge.cn/ch0206/8787/【思路】将i分成j份相当于: 将i-1分成j-1份的方案数 + 将i-j分成j份的方案数 第二种情况相当于,这j份分完后每个都加1【代码】#include<bits/stdc++.h>using namespace std;int main...原创 2018-08-14 17:09:42 · 394 阅读 · 0 评论 -
CodeForces 1108 D Diverse Garland dp 输出路径 滚动数组
TP题意: 给出一个只包含'R' 'G' 'B' 的序列, 问最少改变多少个字符能把这个序列改成没有相同字符相邻的形式思路: dp dp[i][j]表示走到第i个位置时(前i位已符合条件), 结尾是j(0:R, 1:G, 2:B)时, 最少要改变多少个字符.递推式:当a[i]=0时dp[i][0]=min(dp[i-1][1],dp[i-1][2])dp[i][1]=min...原创 2019-05-17 20:28:23 · 276 阅读 · 0 评论 -
Comet OJ 3 B 棋盘 dp
TP题意: 给出n列2排的黑白棋子, 问最少将多少白棋变成黑的, 能让所有的黑棋连通?(不被白棋分割)思路: dpdp[i][j]表示前i列的黑棋都连通, 且第i列(结尾)被改成j状态的总代价. 上白下白:=0, 上白下黑:=1,上黑下白:=2, 上黑下黑:=3.具体状态转移见代码.另外, 两边无关的"上白下白"是不影响题目答案的, 而在dp中,被黑棋夹在中间的"上白下白"...原创 2019-05-17 21:22:36 · 158 阅读 · 0 评论 -
POJ 1050 To the Max 最大子矩阵 HDU1003 最大子段和 dp
题意: 给出一个矩阵, 求子矩阵中元素的和的最大值.思路:考虑一维的情况:一个数列, 求其子段的和的最大值(HDU1003). 这是一个很显然的dp问题.如果0~i-1的子段和>0, 0~i的子段和就是0~i-1的子段和+a[i] (继承之前的)不然0~i的子段和就是a[i] (从i开始)dp[i]=max(dp[i-1]+s[i],s[i])ans=max(d...原创 2019-07-13 16:16:56 · 128 阅读 · 0 评论 -
CodeForces 1185 G1 Playlist for Polycarp dp dfs
题意: 给出n个球, 每个球有颜色和质量, 要取出若干个球总价值为T, 且相邻的球颜色不同, 问有多少种取法. 每个球有编号(即取"红1红2"≠取"红2红1").n<=15, 颜色=3种, T<=225, 每个球的价值<=15.其实只要解决:Ⅰ "一堆球有三种颜色, 有多少种排列方式使得相邻的球颜色不同"Ⅱ dfs枚举所有取法, 得到和为T的(合法)的取法.Ⅰ...原创 2019-07-10 14:52:54 · 178 阅读 · 0 评论 -
CF 1096 D Easy Problem dp
给出一个字符串, 现在可以删除一些字符, 要求不能出现"hard"这个子序列, 而每个位置的字符都有代价, 问最小代价是多少.dp表示前面最坏出现了"hard"的多长的前缀:dp[0]表示前面花费了dp[0]的代价, 使得从开头到当前位置不存在hard的任何前缀.dp[1]表示前面花费了dp[1]的代价, 使得从开头到当前位置存在"h"的任何前缀.dp[2]表示前面花费了dp[2]...原创 2019-07-23 22:55:41 · 186 阅读 · 0 评论 -
HDU 3336 Count the string kmp 递推dp
题意: 每个前缀出现次数的和.思路: cnt[pos]记录第pos个前缀x在比他长的前缀y中出现的次数,递推式:定义原串的前缀为x类串.每个长度为a的x类串s会包含2个长度为nxt[a]的x类串t, 而两个相邻的s会有一个重复的t, 所以cnt[a]个s会有cnt[a]+1个t.最后答案加上每个前缀本身共m. 具体见代码.#include <iostream>...原创 2019-07-17 11:28:06 · 162 阅读 · 0 评论 -
牛客 2019 多校 1 C E I dp 线段树 思维
C Euclidean Distance题意: 给出高维空间的一个点A, 求另一个点P满足坐标非负且坐标和为1, 使得P到A的距离最小.真正的思路:https://www.cnblogs.com/dillonh/p/11215846.html虚假的思路: 本以为可以用拉格朗日乘子法做, 最后发现没有考虑坐标非负的条件, 不是只有等值约束,还有n个不等式约束, 所以L函数会多n个系数不...原创 2019-07-24 00:00:30 · 136 阅读 · 0 评论 -
CF 1183H Subsequences dp
题意: 给出一个长度为n的字符串, 求一个大小为k的子序列集合, 使得花费最小, 每个子序列的花费是和原串的长度差.思路:其实只要知道, 这个字符串的各种花费的子序列有多少个, 先取花费小的(长的), 再取长度短的就好.所以主要的问题就是求各个长度的子序列各有多少个.注意到, 因为贡献只与子序列长度有关, 所以我们只关心长度和对应的个数, 具体字符串长什么样是无所谓的.到此为止...原创 2019-08-02 23:26:40 · 138 阅读 · 0 评论 -
CF 225C Barcode dp
给出一个字符矩阵, 现在把每一列变成相同的字符, 问使得连续列都是相同字符的长度>=x且<=y的最小花费是多少.考虑这个字符矩阵的行是没有真实作用的. 其实就是将这个字符矩阵换为两个长度为列数的数组, 此后就是简单的dp了.新字符如果和前面相同, 转移;新字符和前面不同, 只有当前面的字符连续个数达到x个(当然也要小于y)才能转移.新知识: 如果实在不知道初态怎么设, ...原创 2019-08-03 23:37:03 · 200 阅读 · 0 评论 -
AtCoder ABC139E League 判dag dag上简单dp
有n(1000)n(1000)n(1000)个人, 每个人都要和其他n−1n-1n−1个人进行比赛, 每个人都规定了他参加的n−1n-1n−1场比赛的顺序, 问是否有一种比赛顺序能满足所有人心意. 此外, 每天可以安排多场比赛,但每天一个人只能参加一场比赛. 如果不能满足所有人的心意输出−1-1−1, 如果能够满足所有人心意, 那么输出最少需要比赛多少天.设[A,B][A,B][A,B]代表AA...原创 2019-09-02 18:54:32 · 478 阅读 · 1 评论 -
GYM 102059 G Fascination Street
G Fascination Street给出一串n(2e5)个灯, 每个灯点亮可以照到相邻三个位置, 每个灯点亮都有不同的花费, 现在可以交换k(9)次灯的位置, 求把所有n个位置都照到的最小花费.交换的肯定是一个亮的灯和一个灭的灯, 不然是没有意义的.(即, 将一个花费低的灯点亮, 根花费高, 未点亮的灯交换位置.)对于每个位置i, 保存最后两个灯(i-1,i)是否点亮(注意是点亮, 不是...原创 2019-09-25 22:05:58 · 366 阅读 · 1 评论 -
POJ 3616 Milking Time dp
http://poj.org/problem?id=3616题意:一只牛有m个时间段可以挤奶, 每个时间段能挤出v升奶, 每次挤奶后需要rest分钟休息(然而题意是第7分钟挤完奶, 休息两分钟, 第9分钟就能再次挤奶了....毒瘤题意)思路:先说比较好的思路, 毒瘤思路一会再敲...①正常思路:将所有的时间段按结束时间从小到大排序, dp[i]表示第i个时间段结束时,得到的...原创 2019-04-24 21:37:18 · 190 阅读 · 0 评论 -
poj 3666 Making the Grade dp 离散化
http://poj.org/problem?id=3666题意: 给出一个序列, 问将这个序列改成不上升/不下降序列的最小代价是多少.代价是每个值修改前后差的绝对值之和.思路: 离散化后dp.离散化的正确性不会证...代码只有不下降序列的...水过去了...(✿◡‿◡)dp[i][j]表示前i个数中, 最后一个数是j时的最小代价.递推式: dp[i][j]=min(dp[...原创 2019-04-29 00:40:51 · 122 阅读 · 0 评论 -
HDU 1078 FatMouse and Cheese dp
http://acm.hdu.edu.cn/showproblem.php?pid=1078题意:有一种游戏是的玩法是这样的:有一个n*n的格子,每个格子有一个数字。遵循以下规则:1. 玩家每次可以由所在格子向上下左右四个方向进行直线移动,每次移动的距离不得超过m2. 玩家一开始在第一行第一列,并且已经获得该格子的分值3. 玩家获得每一次移动到的格子的分值4. 玩家下一次移动...原创 2019-04-24 13:47:18 · 136 阅读 · 0 评论 -
【dp】NOI 9265 取数游戏
【题目】http://noi.openjudge.cn/ch0206/9265/【思路】取i的方案数=不取i-1的方案数 不取i的方案数=(取i-1的方案数+1)+(不取i-1的方案数) dp[当前是第几个数][取/不取]=当前的方案数【代码】#include<cstdio>typedef long long ...原创 2018-08-14 17:24:16 · 286 阅读 · 0 评论 -
【dp】【贪心】【尺取法】【HDU】1003 Max Sum【CodeForces】GYM 101652 S Purple Rain
【题目】http://acm.hdu.edu.cn/showproblem.php?pid=1003【题意】找一个和最大的区间【思路】尺取法瞎**贪心#include<bits/stdc++.h>using namespace std;typedef long long ll;const int M=1e5+5;int a[M];int main()...原创 2018-08-16 20:37:07 · 195 阅读 · 0 评论 -
洛谷 P1002 过河卒 入门dp
[题目]:https://www.luogu.org/problemnew/show/P1002[思路]:dp[i][j]=dp[i-1][j]+dp[i][j-1][注意]马能到的位置的值是0[边界位置]如果马不能到初始位置,dp[0][0]=1如果"马位"在左侧边,其上都为0如果"马位"在下侧边,其右都为0[代码]#include<bits/st...原创 2019-04-08 20:49:07 · 159 阅读 · 2 评论 -
洛谷 P1004 方格取数 入门dp
我好菜我好菜我好菜我好菜我好菜我好菜我好菜我好菜我好菜我好菜我好菜[题目]:https://www.luogu.org/problemnew/show/P1004[思路]一开始想的是先dp第一遍, 再将走过的置零(hdg教的我逆推), 再dp第二遍.然而WA了之后, hdg告诉我先让第一个人走最优可能会让总体走不了最优.所以要枚举两个人的所有的状态, 4维dp存储两个人的位置....原创 2019-04-08 22:23:25 · 174 阅读 · 0 评论 -
HDU6495 2050ccpc 冰水挑战 dp
Problem Description2050有一项很有挑战的活动 —— Polar Bear Pitching 。体验人跳入冰水中讲述自己的恐惧,改变以及梦想。这是没有时间限制的演讲,就看你能在冰水中呆多久!现在,我们要依次面对n个冰水挑战,每个挑战你都可以选择接受或不接受。接受第i个挑战会让你丧失ai点体力,因为每个挑战所处的环境不同,如果你要挑战它,在挑战它之前你的体...原创 2019-04-13 22:22:22 · 516 阅读 · 0 评论 -
QAQorz吃汉堡 入门dp
QAQorz一回到长沙就直奔汉堡王,已知小食的美味度是11,汉堡的美味度是mm,QAQorz一共能吃nn美味度的东西,请问QAQorz吃一次汉堡王有几种不同的搭配方案?关于方案:如果两个方案吃汉堡和小食的先后顺序不同,则称这两种方案是不同的Input第一行一个数t,表示(1≤t≤15)组数据。接下来tt行,每行两个数表示n和m,1≤n≤2e5,1≤m≤10Output方案数,...原创 2019-04-16 21:57:02 · 247 阅读 · 1 评论 -
HDU 2859 Phalanx dp 最大对称子矩阵
http://acm.hdu.edu.cn/showproblem.php?pid=2859题意:给出一个由小写字母构成的字符矩阵, 问它的最大对称子矩阵的边长.最大子矩阵要求按从左下到右上的对角线对称.思路:当前点右上方能构成对称矩阵←这个点(本列向上)与(本行向右)对称+右上那个点能构成对称矩阵.考虑dp. dp[i][j]表示(i,j)这个点能构成最大的子矩阵宽度.递推式...原创 2019-04-25 20:56:23 · 202 阅读 · 0 评论 -
POJ 2533 入门dp LIS最长上升子序列
题目:http://poj.org/problem?id=2533HDU 1087与之类似,不过是求最大和,不是求长度这是用dp写的LIS,复杂度n*n,用二分nlogn写LIS:https://blog.youkuaiyun.com/qq_32259423/article/details/82974790dp[i]表示结尾是a[i]的长长度是多少.递推式: dp[i]=dp[j]+1 用i之...原创 2019-04-17 22:18:56 · 135 阅读 · 0 评论 -
HDU 1069 Monkey and Banana 入门dp + 离散化
http://acm.hdu.edu.cn/showproblem.php?pid=1069又读错题了...砖块每类有无数个...不是只能用一次题意:有m种砖,每种砖有长宽高3种属性,把砖摞成一摞,问最高能多高.砖i能放在砖j上 当且仅当 i长<j长&&i宽<j宽.思路:一开始想直接dp,但是发现没有给value的大小,索性离散化一下.dp[...原创 2019-04-18 15:42:29 · 185 阅读 · 1 评论 -
POJ 1458 入门dp LCS 最长公共子序列
http://poj.org/problem?id=1458题意:两个字符串求最长公共子序列思路:dp[i][j]表示a串前i项和b串前j项的LCS.递推式:dp[i][j]=max(dp[i-1][j],dp[i][j-1],dp[i-1][j-1]+a[i]==b[j])分别用 a串前i-1项和b串前j项的LCS a串前i-1项和b串前j项的LCS...原创 2019-04-18 17:34:11 · 182 阅读 · 0 评论 -
hdu 1024 优化dp 最大M子段和
http://acm.hdu.edu.cn/showproblem.php?pid=1024参考:https://blog.youkuaiyun.com/asd7788999/article/details/80272633https://blog.youkuaiyun.com/no_O_ac/article/details/82261184(hjmnb)#include<bits/stdc++...原创 2019-04-28 11:43:09 · 191 阅读 · 2 评论 -
HDU 1160 FatMouse's Speed LIS
http://acm.hdu.edu.cn/showproblem.php?pid=1160题意:1000只老鼠, 每个老鼠有重量和速度, 现在要选出最多的老鼠排成一队,使得老鼠i的重量>老鼠i-1的重量&&老鼠i的速度<老鼠i-1的重量.思路:将老鼠按重量从小到大排序, 然后求LISdp[i]表示第i个老鼠作为最重的老鼠时, 队中的老鼠个数....原创 2019-04-23 21:37:35 · 124 阅读 · 0 评论 -
CF 1228 C 数论 D 图论/hash E dp
C Primes and Multiplication给出x(1e9)和n(1e18), 对于x的所有质因子y, 对于1到n每个数计算最大的是y的幂次的因子z, 对于这些z求乘积.x的质因子很好求. 第二步我们总不能枚举1到n所有的数然后二分来做.我们假设a是x的质因子之一.可以想到, 1到n能被a整除的数恰好是n/a个, 1到n能被a2a^2a2整除的数恰好是n/(a2)n/(a^...原创 2019-10-03 21:52:21 · 245 阅读 · 0 评论