DP
EHWWFFT.
这个作者很懒,什么都没留下…
展开
-
codeforces 446A dp
题目链接:https://codeforces.ml/problemset/problem/446/A转自:https://blog.csdn.net/hongrock/article/details/37754307题意:给一个序列,求最多改变一个数的情况下最长的严格上升的序列长度。思路:第i位的答案有三种情况:1、令A[i]比A[i-1]大,然后求出从A[i-1]向左延伸的最长长度2、令A[i]比A[i+1]小,然后求出A[i+1]向右延伸的最长长度3、同时使得A[i-1]<A[i]&转载 2020-09-27 19:14:32 · 171 阅读 · 0 评论 -
166E - Tetrahedron 正四面体路径计数 dp
题目链接:https://codeforces.ml/problemset/problem/166/E来源:官方题解 https://codeforces.ml/blog/entry/4173题意:一个正四面体,一只蚂蚁每一时刻只能停留在顶点处,一秒只能移动1并且不能停留。求从D出发经过n秒后回到D的路径数。思路:d表示在D处的方案数,abc表示在ABC处的方案数。对于每一秒,可以到达D的方案数为前一秒在ABC时的方案数,可以到达ABC的方案数为d3(从顶点有3种方案到达)+2abc(从ABC可以有两转载 2020-05-19 15:51:04 · 254 阅读 · 0 评论 -
codeforces 431C - k-Tree dp
题目链接:https://codeforces.ml/problemset/problem/431/C转自:https://blog.csdn.net/qq_25955145/article/details/81261580题意:给一个无限的满k叉树,求从根节点开始经过的路径总长度为n,且其中至少一条边的长度不小于d的路径数。思路:首先假设k为无穷大, 初始状态dp【1】=1dp【2】=dp【1】+1,包括一条从路径长度为1的出来走到下一个节点p,在点p处剩余可走的长度为1,即dp【1】(dp【i】原创 2020-05-17 21:46:45 · 176 阅读 · 0 评论 -
Concerts Gym - 101669A dp
题目链接:https://vjudge.net/problem/Gym-101669A转自:https://blog.csdn.net/weixin_42754600/article/details/89066770题意:给出看每场音乐会后需要休息的天数,想看音乐会的顺序(a串)以及音乐会举办的顺序(b串)。问有多少种观看方法。思路:dp【j】【i】表示枚举到a串的第j位b串的第i位有多少种...转载 2020-03-29 09:21:07 · 163 阅读 · 0 评论 -
Color Length UVA - 1625 颜色长度
题目链接:https://vjudge.net/problem/UVA-1625紫书P276题意:两个序列,要求合成一个序列。总花费为每个颜色在新序列中相距最远的下标差之和。求最小花费。思路:dp【i】【j】表示已经从序列12中移走了i、j个字符的最小花费。c【i】【j】表示当前有多少颜色已经开始但是尚未结束。每次dp【i】【j】累加即可,不需要存储颜色开始结束位置。#include<...原创 2020-03-28 19:17:07 · 128 阅读 · 0 评论 -
Partitioning by Palindromes UVA - 11584 划分回文串
题目链接:https://vjudge.net/problem/UVA-11584紫书P275题意:把字符串划分成尽可能少的回文串。思路:f【i】表示从1~i所能划分最少的回文串个数。j枚举分界点,即如果j到i是一个回文串,那么f【i】可以由f【j-1】+1转移来。#include <iostream>using namespace std;#include <cst...原创 2020-03-28 18:43:26 · 112 阅读 · 0 评论 -
Lighting System Design UVA - 11400 dp 更换灯泡
题目链接:https://vjudge.net/problem/UVA-11400紫书P275题意:输入为电压、电源费用、灯泡单价、所需灯泡数量。电压低得灯泡可以被电压高的灯泡替换,求最小花费。思路: 每种灯泡要么全换,要么全不换。 如果将一部分灯泡换成电压高单价低的灯泡,还需要花费电源钱,如果全部更换则不需要额外花费电源。先按照电压排序。dp【i】表示到第i种灯泡所需的最小花费。还要确定一...原创 2020-03-28 16:12:24 · 181 阅读 · 0 评论 -
Max Sum Plus Plus HDU - 1024 dp
题目链接:https://vjudge.net/problem/HDU-1024#author=SWUN2018转自:https://www.cnblogs.com/zhengguiping–9876/p/5349720.html题意:给一串序列,要求找几段互不相交的区间,让它们的和最大。思路:dp【i】【j】表示分成i段时选择第j个数的答案。maxx表示前j-1个数分成i-1段的最大值。那...转载 2020-03-26 19:11:10 · 122 阅读 · 0 评论 -
Doing Homework HDU - 1074 状压dp
题目链接:https://vjudge.net/problem/HDU-1074转自:https://blog.csdn.net/qq_41925919/article/details/89372016题意:有一些作业的截止时间和完成作业需要的时间,一门作业每超过截止时间一天就扣一分。求扣分最少且字典序最小的输出序列。输入按照字典序输入。思路:要么贪心要么dp。 这道题是dp。因为n&l...转载 2020-03-25 14:59:57 · 102 阅读 · 0 评论 -
Unidirectional TSP UVA - 116 递推dp+输出字典序
题目链接:https://vjudge.net/problem/UVA-116紫书P270思路:dp【i】【j】定义为以(i,j)出发的路径和最小的结果。如果正推是非常难写的,逆推就简单了。#include<bits/stdc++.h>using namespace std;const int maxn = 100 + 5;const int INF = 10000000...原创 2020-03-23 17:57:09 · 88 阅读 · 0 评论 -
Tickets HDU - 1260 递推dp
题目链接:https://vjudge.net/problem/HDU-1260#author=sharpland题意:有k个人买票,每个人可以和前面一个人共同购买,一次最多两人同时一起购买。求最小花费时间。思路:dp【i】表示到第i个人的最小花费。有两种抉择 1.和前面那个人一起购买dp【i】=dp【i-2】+b【i】 2.自己单独购买 dp【i】=dp【i-1】+a【i】#inclu...原创 2020-03-23 12:47:29 · 91 阅读 · 0 评论 -
免费馅饼 HDU - 1176 递推dp
题目链接:https://vjudge.net/problem/HDU-1176转自:https://blog.csdn.net/sungaochao/article/details/42012509思路:类似于数塔的做法。dp【i】【j】表示第i分钟在位置j的答案。注意一定要倒推,这样才能保证开始一定是从dp【0】【5】开始的,如果正推,不能保证最后结果一定来自dp【0】【5】.#incl...转载 2020-03-19 19:32:51 · 106 阅读 · 0 评论 -
Super Jumping! Jumping! Jumping! HDU - 1087 LIS
题目链接:https://vjudge.net/problem/HDU-1087#author=bobodesu题意:求最长上升子序列。必须是严格大于。#include <cstdio>#include <iostream>#include <algorithm>#include <cstring>#include <cmath&g...原创 2020-03-19 15:03:43 · 109 阅读 · 0 评论 -
Tour UVA - 1347 dp 限制方程
题目链接:https://vjudge.net/problem/UVA-1347紫书P269题意:有n个点,设计一条路线,从最左边的点出发到最右边的点然后返回,除了最右边和最左边的点外每个点经过一次,求移动的最小距离。输入按照x升序。思路:可以想象成两个人一起从端点出发,并且两人不能走同一点。dp【i】【j】表示一人在i一人在j的位置还需要走多远。可得dp【i】【j】=dp【j】【i】。设i...原创 2020-03-18 16:33:12 · 86 阅读 · 0 评论 -
A Spy in the Metro UVA - 1025 dp
题目链接:https://vjudge.net/problem/UVA-1025紫书P268 书上是按照T从大到小题意:第一行输入n,为n个车站,第2行为T,第三行表示从i到i+1车站所需时间,下面两行表示从1号车站向右走到n号车站有多少班车以及出发时间,最后两行表示从n号到1号的车出发时间,求在时间T到达n号车站在车站等待的最少时间。思路:dp【i】【j】表示在第i分钟j号车站已经等待的...原创 2020-03-16 20:34:12 · 176 阅读 · 0 评论 -
Max Sum HDU - 1003 dp 最大连续数字和
题目链接:https://vjudge.net/problem/HDU-1003题意:求最大连续数字和并输出端点。思路:状态转移方程为dp【i】=max(dp【i-1】+a【i】,a【i】)。如果前一个的dp值是负的,那么就重新起一个头,否则就接上。#include <cstdio>#include <iostream>#include <algorithm...原创 2020-03-15 20:29:03 · 103 阅读 · 0 评论 -
Beautiful numbers CodeForces - 55D 数位dp 求能被各位数字整除的个数
题目链接:https://vjudge.net/problem/CodeForces-55D转自:https://blog.csdn.net/codeswarrior/article/details/80434276题意:求l~r之间能被除0外各位数字整除的数的个数。思路: 一个数能被多个数整除,那么这个数一定也能整除多个数的最小公倍数。 dp【i】【j】【k】表示第i位已经枚举的数字j,以...转载 2020-03-15 10:53:50 · 209 阅读 · 0 评论 -
String painter HDU - 2476 区间dp 字符串涂色转换
题目链接:https://vjudge.net/problem/HDU-2476转自:https://blog.csdn.net/u011815404/article/details/82285361题意:有两个字符串,求第一个串涂色转换到第二个串的最小操作数。思路:涂色paint HYSBZ - 1260的加强版。 需要用到两次dp。 先求出空串转换到串2的操作数,用dp记录。 然后初始化...转载 2020-03-14 10:09:55 · 167 阅读 · 0 评论 -
涂色paint HYSBZ - 1260 区间dp
题目链接:https://vjudge.net/problem/HYSBZ-1260题意:求把一个空串涂成目标串的最小操作数。#include <cstdio>#include <iostream>#include <algorithm>#include <cstring>#include <cmath>#include &...原创 2020-03-14 09:45:49 · 193 阅读 · 0 评论 -
Pangu and Stones HihoCoder - 1636 区间dp
题目链接:https://vjudge.net/problem/HihoCoder-1636题意:合并石子,每次合并的堆数有限制。#include <bits/stdc++.h>using namespace std;const int inf=0x3f3f3f3f;int sum[105],dp[105][105][105],a[105];int main(){ ...原创 2020-03-12 18:30:36 · 86 阅读 · 0 评论 -
F(x) HDU - 4734 数位dp
题目链接:https://vjudge.net/problem/HDU-4734转自:https://blog.csdn.net/sunyutian1998/article/details/78733904题意:输入a,b,给出f(x),求0~b中有多少数的f(x)值小于等于f(a)。思路:f(a)记为num。为了不tle,不能每次都初始化dp数组。 dp【i】【j】表示到第i位,num减去...转载 2020-03-12 10:35:07 · 124 阅读 · 0 评论 -
Tree of Tree ZOJ - 3201 树形dp
题目链接:https://vjudge.net/problem/ZOJ-3201题意:一棵树,求满足有k个节点的子树的最大节点权值和。输入保证合法。思路:dp[i][j]表示以i为根,包含j个节点时的答案。注意更新答案时的枚举顺序。#include <cstdio>#include <iostream>#include <algorithm>#inc...原创 2020-03-10 17:28:10 · 137 阅读 · 0 评论 -
Bomb HDU - 3555 数位dp
题目链接:https://vjudge.net/problem/HDU-3555题意:求出现49的数的个数思路:用sta区分前一位是否是4。先算不满足条件的数然后减去即可。#include <cstdio>#include <iostream>#include <algorithm>#include <cstring>#include ...原创 2020-03-10 08:29:13 · 111 阅读 · 0 评论 -
不要62 HDU - 2089 数位dp讲解
题目链接:https://vjudge.net/problem/HDU-2089讲解:https://blog.csdn.net/wust_zzwh/article/details/52100392#include <cstdio>#include <iostream>#include <algorithm>#include <cstring&g...转载 2020-03-09 18:25:17 · 117 阅读 · 0 评论 -
Brackets POJ - 2955 区间dp 括号匹配
题目链接:https://vjudge.net/problem/POJ-2955题意:一串括号序列,可以去掉任意一个,求能匹配的最大长度。#include <cstdio>#include <iostream>#include <algorithm>#include <cstring>#include <cmath>#inc...原创 2020-03-09 12:11:57 · 127 阅读 · 0 评论 -
The Tower of Babylon UVA - 437 非固定终点的dp
题目链接:https://vjudge.net/problem/UVA-437题意:有一些立方体,两个立方体可以摞起来的条件是上面立方体的长宽小于下面的,求能达到最高的高度。思路:dp(i,j)表示以第i个立方体的第j维为高。#include <bits/stdc++.h>using namespace std;const int maxn =35;int block[ma...原创 2020-03-09 10:46:53 · 97 阅读 · 0 评论 -
Foreign Postcards Gym - 101190F 概率DP
题目链接:https://vjudge.net/problem/Gym-101190F转自:https://blog.csdn.net/dormousenone/article/details/73699630题意:1.对于一叠 n 张卡片,随机取前 k 张2.若取到的 k 张的第一张为 W ,则 k 张卡片的状态全部翻转。3.将 k 张卡片在桌面上展示4.若一叠卡片仍有剩余,则继续上述...转载 2019-11-04 22:18:11 · 133 阅读 · 0 评论 -
Rectangle Painting 1 CodeForces - 1198D dp
题目链接:https://vjudge.net/problem/CodeForces-1198D转自:https://blog.csdn.net/weixin_44618487/article/details/98208473题意:有一幅图,‘#’代表黑,‘.’代表白,把一个矩形涂成白色的花费是max(矩形的高,矩形的宽),求把这幅图涂成白色的最小花费。思路:dp,将一个大问题分解成若干小问...转载 2019-10-20 17:46:31 · 258 阅读 · 0 评论 -
Just Terraffic! Gym - 101177J dp
题目链接:https://vjudge.net/problem/Gym-101177J转自:http://blog.sina.com.cn/s/blog_1629f5a7e0102yb0n.html题意:有一些车轮通过传感器的时间,时间间隔<=1000的一定是同一辆车,>=2000的一定是不同的车。车有两对或者三对轮子,求两种车的数量。思路:dp[i]保存到第i对轮子通过传感器时...转载 2019-10-07 16:55:32 · 154 阅读 · 0 评论 -
poj 1742 多重背包 一维优化防止mle
题目链接:https://vjudge.net/problem/POJ-1742转自:https://www.cnblogs.com/sevenun/p/5442279.html题意:有n种硬币及其数量,求凑出的价值不超过m的方案数。思路:设d[i][j]——前i种硬币,凑成总值j时,第i种硬币所剩余的个数。 默认d[i][j] = -1,代表无法凑成总值j 转移方程为,若d[i...转载 2019-09-23 10:57:00 · 184 阅读 · 0 评论 -
hrbust 1818 区间dp模板
题目链接:https://vjudge.net/problem/HRBUST-1818题意:一条直线上摆放着一行共n堆的石子。现要将石子有序地合并成一堆。规定每次只能选相邻的两堆合并成新的一堆,并将新的一堆石子数记为该次合并的得分。请编辑计算出将n堆石子合并成一堆的最小得分和将n堆石子合并成一堆的最大得分。输入:输入有多组测试数据。每组第一行为n(n<=100),表示有n堆石子。二行为n...原创 2019-09-23 10:35:36 · 111 阅读 · 0 评论 -
hdu2159 二维背包
转自:https://blog.csdn.net/qingqiu_wd/article/details/54579458题目链接:https://vjudge.net/problem/HDU-2159题意:最近xhd正在玩一款叫做FATE的游戏,为了得到极品装备,xhd在不停的杀怪做任务。久而久之xhd开始对杀怪产生的厌恶感,但又不得不通过杀怪来升完这最后一级。现在的问题是,xhd升掉最后一级...转载 2019-09-23 10:11:17 · 83 阅读 · 0 评论 -
hdu1114 完全背包
题目链接:https://vjudge.net/problem/HDU-1114转自:https://www.cnblogs.com/littlehoom/p/3550906.html题意:有一个存储罐,输入空时重量与满载重量,有几种钱币,输入价值与重量,求存储罐满载时的最小价值。思路:完全背包+一维优化。#include <bits/stdc++.h>using names...转载 2019-09-23 09:55:26 · 140 阅读 · 0 评论 -
HDU-4576 概率DP 用异或进行空间优化
转自:https://blog.csdn.net/dcx2001/article/details/78036359题意:输入n,m,l,r。n是一圈的长度,数字是顺时针标记的。m是操作数,接下来有m行,每行都有一个数字w代表每次行走的步数,走顺时针逆时针的方向是等概率的,一开始在1处,求最后在【l,r】范围内的概率。思路:f[i][j]表示第I个操作时在j位置的概率。因为空间限制,所以数组第一...转载 2019-09-02 10:01:14 · 207 阅读 · 2 评论