MM不哭(dp $\star\star $) 在一个数轴上,有 \(n\) 个 \(MM\) 在哭泣($5555$~一直哭)。 \(tcboy\) 也在这个数轴上,并恰好看到了这一幕,由于每个 \(MM\) 哭都会让 \(tcboy\) 损失一定的 \(rp\),于是 \(tcboy\) 有必要去安 ...
分类:
其他好文 时间:
2020-07-04 13:48:55
阅读次数:
71
这题的rotate操作其实就是暗示可以把某一个数提到最前面 因此本题其实就是求取最长公共子序列 但是有个问题当转移遇到s[i]==t[j]的时候,不能直接转移,因为只有当他二十六个字母的后缀数组全部比t串大时才可以转移,否则如果匹配了当前两个 没有办法把后面的提上来变成相等 #include<bit ...
分类:
其他好文 时间:
2020-07-04 01:49:10
阅读次数:
82
区间dp问题是在定义状态时,定义了一个区间 区间dp的状态表示一般是dp[i][j],表示从i到j这个区间,也就是从第i堆石子到第j堆石子这个区间 以最后一次合并的分界线的位置,来进行集合的划分 假设从i到j一共有k个,k = j - i + 1 按照左右两堆左边有几个来划分,左边有1个,2个,.. ...
分类:
其他好文 时间:
2020-07-04 01:27:12
阅读次数:
70
区间动态规划特点 区间类动态规划是线性动态规划的扩展,它在分阶段地划分问题时,与阶段中元素出现的顺序和由前一阶段的哪些元素合并而来由很大的关系。令状态 \(f(i,j)\) 表示将下标位置 \(i\) 到 \(j\) 的所有元素合并能获得的价值的最大值,那么 \(f(i,j)=max\{ f(i,k ...
分类:
其他好文 时间:
2020-07-04 01:04:24
阅读次数:
41
时间复杂度n ^ 2 1 #include <bits/stdc++.h> 2 using namespace std; 3 const int N = 1010; 4 int n, m; 5 char a[N], b[N]; 6 int dp[N][N]; 7 int main() { 8 cin ...
分类:
其他好文 时间:
2020-07-03 21:21:38
阅读次数:
62
一 : 0 1 背包 设 f [ i ] [ j ] 表示 选了 i 个物品 容量 为 j 的背包,状态直接转移 0 - > V 枚举 和 V - > 0 枚举都可 for(int i=1;i<=n;i++){ for(int j=0;j<=V;j++){ if(w[i]>j)f[i][j]=f[i ...
分类:
其他好文 时间:
2020-07-03 21:01:43
阅读次数:
49
给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度。 示例 1: 输入: "(()"输出: 2解释: 最长有效括号子串为 "()"示例 2: 输入: ")()())"输出: 4解释: 最长有效括号子串为 "()()" int dp[100004]; class Solu ...
分类:
其他好文 时间:
2020-07-03 19:54:12
阅读次数:
68
题目 传送们 小F 的学校在城市的一个偏僻角落,所有学生都只好在学校吃饭。学校有一个食堂,虽然简陋,但食堂大厨总能做出让同学们满意的菜肴。当然,不同的人口味也不一定相同,但每个人的口味都可以用一个非负整数表示。 由于人手不够,食堂每次只能为一个人做菜。做每道菜所需的时间是和前一道菜有关的,若前一道菜 ...
分类:
其他好文 时间:
2020-07-03 19:33:25
阅读次数:
58
总结 状压DP就是将一个状态压缩为一个整数(通常为二进制数),就可以在更为方便地进行状态转移的同时,达到节约空间的目的。 题型一、冲突问题 1.1 特殊方格棋盘 题目描述 分析 我们设f[i][j]为当前的状态为$i$,放置到第$j$行时的方案数 但是,因为我们要在$n \times n$的棋盘上放 ...
分类:
其他好文 时间:
2020-07-03 19:14:23
阅读次数:
54
参考:https://www.luogu.com.cn/blog/RPdreamer/p2051 #include<map> #include<queue> #include<time.h> #include<limits.h> #include<cmath> #include<ostream> # ...
分类:
其他好文 时间:
2020-07-03 14:05:54
阅读次数:
57