DP
文章平均质量分 62
划划的北北
这个作者很懒,什么都没留下…
展开
-
DP问题3:acwing4378选取数对 【前缀和+背包】
4378. 选取数对 题目 提交记录 讨论 题解 视频讲解给定一个长度为nn的整数数列a1,a2,…,ana1,a2,…,an。请你选择kk个数对[l1,r1],[l2,r2],…,[lk,rk][l1,r1],[l2,r2],…,[lk,rk],要求所选数对满足:1≤l1≤r1<l2≤r2<…<lk≤rk≤n1≤l1≤r1<l2≤r2<…<lk≤rk≤n。 对于1≤i≤k1≤i≤k,ri−li+1=m...原创 2022-03-21 11:08:15 · 1585 阅读 · 0 评论 -
DP问题1 :被三整除的子序列 【NC21302】
链接:登录—专业IT笔试面试备考平台_牛客网来源:牛客网题目描述给你一个长度为50的数字串,问你有多少个子序列构成的数字可以被3整除答案对1e9+7取模输入描述:输入一个字符串,由数字构成,长度小于等于50输出描述:输出一个整数示例1输入复制132132输出复制33示例2输入复制99输出复制11示例3输入复制333333输出复制77示例4输入复制1234561.原创 2022-03-20 16:04:44 · 440 阅读 · 0 评论 -
洛谷P1007独木桥 【模拟+DP】
题目背景战争已经进入到紧要时间。你是运输小队长,正在率领运输部队向前线运送物资。运输任务像做题一样的无聊。你希望找些刺激,于是命令你的士兵们到前方的一座独木桥上欣赏风景,而你留在桥下欣赏士兵们。士兵们十分愤怒,因为这座独木桥十分狭窄,只能容纳11个人通过。假如有22个人相向而行在桥上相遇,那么他们22个人将无法绕过对方,只能有11个人回头下桥,让另一个人先通过。但是,可以有多个人同时呆在同一个位置。题目描述突然,你收到从指挥部发来的信息,敌军的轰炸机正朝着你所在的独木桥飞来!为了...原创 2021-10-17 17:05:05 · 98 阅读 · 0 评论 -
洛谷 P1002 过河卒 DP
题目描述棋盘上AA点有一个过河卒,需要走到目标BB点。卒行走的规则:可以向下、或者向右。同时在棋盘上CC点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点。因此称之为“马拦过河卒”。棋盘用坐标表示,AA点(0, 0)(0,0)、BB点(n, m)(n,m),同样马的位置坐标是需要给出的。现在要求你计算出卒从AA点能够到达BB点的路径的条数,假设马的位置是固定不动的,并不是卒走一步马走一步。输入格式一行四个正整数,分别表示BB点坐标和...原创 2021-10-04 20:25:42 · 123 阅读 · 0 评论 -
洛谷 P1004 方格取数 多维DP
题目描述设有N \times NN×N的方格图(N \le 9)(N≤9),我们将其中的某些方格中填入正整数,而其他的方格中则放入数字00。如下图所示(见样例):A 0 0 0 0 0 0 0 0 0 0 13 0 0 6 0 0 0 0 0 0 7 0 0 0 0 0 0 14 0 0 0 0 0 21 0 0 0 4 0 0 0 0 15 0 0 0 0 0 0 14 0 0 0 0 ...原创 2021-10-04 20:13:01 · 210 阅读 · 0 评论 -
洛谷P1435 [IOI2000]回文字串 / [蓝桥杯2016省]密码脱落
这道题目运用了DP+思维,把字符串倒过来可以发现用字符串长度 减去 倒序字符串与原字符串的最长公共子序列的长度(LCS)就是答案#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#include <iostream>#include <cstdlib>using namespace std;const int N=100..原创 2021-09-30 20:59:37 · 165 阅读 · 0 评论 -
洛谷 P1115 最大子段之和 线性DP
这道题目看到很多大佬写的很复杂,其实代码真的好简单,一开始也被自己绕复杂了,用了前缀和数组,也自然用了i,j两个维度,i当做区间末端,j当做区间头,但是这样o(n*n)的时间复杂度,于是降维,把j那个维度去掉,降了就AC了先看题目题目描述给出一个长度为nn的序列aa,选出其中连续且非空的一段使得这段和最大。输入格式第一行是一个整数,表示序列的长度nn。第二行有nn个整数,第ii个整数表示序列的第ii个数字a_iai。输出格式输出一行一个整数表示答案。...原创 2021-09-29 16:38:01 · 226 阅读 · 0 评论 -
洛谷 P1799 数列 线性dp
/*这道题目是数论+dp一.状态表示:二维f[i][j] 表示前i个数中删去j个数,能得到数值与位置相等的个数最大值二.状态计算:1.划分集合:集合左边是a[i] 在原位置i上 :*****左半部分可以分成——不删去a[i]和删去a[i]A.不删去a[i]就是把a[i]能对应上原位置这种情况加到总情况中也就是dp[i-1][j]+1B.删去a[i]就是dp[i-1][j-1] ,因为要求的满足条件个数等于前i-1个数删了j-1个数的结果j-1的1是减去被删除的a[i]...原创 2021-09-28 23:04:27 · 98 阅读 · 0 评论