
动态规划
fffalling
这个作者很懒,什么都没留下…
展开
-
剑指 Offer 46. 把数字翻译成字符串(dp)
给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。示例 1:输入: 12258输出: 5解释: 12258有5种不同的翻译,分别是"bccfi", “bwfi”, “bczi”, “mcfi"和"mzi”提示:0 <= num < 231解析:是一个递推公式,但是对于边界值要判断好。class Sol原创 2020-12-14 12:16:50 · 255 阅读 · 0 评论 -
376. 摆动序列(dp)
如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列。第一个差(如果存在的话)可能是正数或负数。少于两个元素的序列也是摆动序列。例如, [1,7,4,9,2,5] 是一个摆动序列,因为差值 (6,-3,5,-7,3) 是正负交替出现的。相反, [1,4,7,2,5] 和 [1,7,4,5,5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最后一个差值为零。给定一个整数序列,返回作为摆动序列的最长子序列的长度。 通过从原始序列中删除一些(也可以不删除)元素来原创 2020-12-13 09:55:20 · 121 阅读 · 0 评论 -
leetcode 120. 三角形最小路径和(滚动数组)
给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点。from typing import List #dp[i][j]表示从上到第i行,第j列的最小路径和 # dp[i][j]=min(dp[i-1][j-1],dp[i-1][j])+arr[i][j] # 每一个都只和上一层有关 # 使用滚动数组倒序更新原创 2020-10-13 09:56:14 · 142 阅读 · 0 评论 -
Codeforces Round #551 (Div. 2) D. Serval and Rooted Tree(dp)
D. Serval and Rooted Treetime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputNow Serval is a junior high school student in Japari Middle School, ...原创 2019-12-31 12:35:44 · 146 阅读 · 0 评论 -
牛客 流星雨(dp)
链接:https://ac.nowcoder.com/acm/contest/547/D来源:牛客网英仙座流星雨(学名Perseids)是以英仙座γ星附近为辐射点出现的流星雨,也称英仙座γ流星雨。每年在7月20日至8月20日前后出现,于8月13日达到高潮。与象限仪座流星雨、双子座流星雨并称为北半球三大流星雨。暑假到了,又是一个去看流星雨的好季节。看流星雨最重要的是什么?当然是许愿。当一颗...原创 2019-03-20 11:23:46 · 364 阅读 · 0 评论 -
南京网络赛 E AC Challenge(状压DP)
预处理出做每道题要求的状态,和每个状态有多少个1。判断当前状态是否满足要求只需要将当前状态与要求状态按位与,并判断是否和要求状态相等。 感觉是这次比赛最好做的一道题了#include&amp;lt;bits/stdc++.h&amp;gt;using namespace std;typedef long long ll;ll a[25],b[25],sta[25];ll dp[1&amp;lt;&amp;lt;...原创 2018-09-03 09:32:18 · 164 阅读 · 0 评论 -
HDU多校第九次 6415 (dp
dp是不可能的,这辈子都写不出的。。。当放最大数字的时候只能占据一行一列 其余的数字 1. 只占据1行 2. 只占据1列 3. 填充在被占据过的行和列里面这里需要对取模优化 有两种方法吧 1. 减少取模次数 2. 结果值改成int,每次都存到int里面void update(int &k1,long long k2){//后面的数字用来存储可能爆int的乘...原创 2018-08-21 19:41:38 · 215 阅读 · 0 评论 -
HDU 6321 Problem C. Dynamic Graph Matching (状压dp)
题意:给定一个N个点的零图,M次操作,添加或删除一条边,每一次操作以后,打印用1,2,…N/2条边构成的匹配数。 分析:因为N的范围很小,所以可以把点的枚举状态用二进制表示集合。用一维数组dp[S]表示二进制集合为S的点集的匹配数。 每次加边操作,从大到小遍历集合,dp[S]+=dp[S-u-v];删边操作,从小到大遍历集合,dp[S]-=dp[S-u-v]。 预处理出每个1024之内每个数...原创 2018-08-11 13:04:59 · 176 阅读 · 0 评论 -
HDU 1159.Common Subsequence
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1159题目大意:给出两个字符串,求两个字符串的最长公共字串。思路:慢慢重心开始有贪心转向动态规划了,这题就是简单的动态规划题。以题目的第一组测试数据为例。abcfbc abfcab。辅助空间变化示意图可以看出:F[i][j]=F[i-1][j-1]+1;(a[i]==b[j])F[i][j]=max(原创 2017-11-09 12:35:21 · 163 阅读 · 0 评论 -
hdu 1789 How many ways(记忆化搜索)
这是一个简单的生存游戏,你控制一个机器人从一个棋盘的起始点(1,1)走到棋盘的终点(n,m)。游戏的规则描述如下:1.机器人一开始在棋盘的起始点并有起始点所标有的能量。2.机器人只能向右或者向下走,并且每走一步消耗一单位能量。3.机器人不能在原地停留。4.当机器人选择了一条可行路径后,当他走到这条路径的终点时,他将只有终点所标记的能量。如上图,机器人一开始在(1,1)点,并拥有4单位能量,原创 2017-11-09 20:55:48 · 150 阅读 · 0 评论