Description 要把两个字符串变成相同的字符串 一共可以利用以下三种操作: 1、把串中任意一个字符删去; 2、在串中任意一个位置插入一个字符; 3、把串中任意一个字符变成其他任意字符; 问至少要多少次操作才能让两个字符串相同? (https://www.luogu.com.cn/proble ...
分类:
其他好文 时间:
2020-03-01 11:00:39
阅读次数:
73
给定一个无向图,一条路径被称为最短路,当且仅当不存在从它的起点到终点的另外一条路径总长度比它小。两条最短路不同,当且仅当它们包含的道路序列不同。我们需要对每条道路的重要性进行评估,评估方式为计算有多少条不同的最短路经过该道路。$n\leq 1500,m\leq 5000,w\leq 10000$ S ...
分类:
编程语言 时间:
2020-03-01 10:54:29
阅读次数:
65
"题目链接" 考虑区间DP。设$L[i][j]$表示当前装置里的数字是$i 1$,已经确定的答案区间为$[i,j]$,还需要的最少操作次数;$R[i][j]$表示当前装置里的数字是$j+1$,已经确定的答案区间为$[i,j]$,还需要的最少操作次数。 发现左端点相同时答案随区间长度的增加而单调不降, ...
分类:
其他好文 时间:
2020-03-01 10:44:57
阅读次数:
89
这是我斜率DP第一个没有一遍AC的,原因是第一遍忘开long long了。 这一题比较特殊,细心的同学一定发现了,递推式不带f。 为了方便,设d数组的后缀和为sd[i]=sd[i+1]+d[i],设k数组的前缀和为sk[i]=sk[i-1]+k[i](k[i]即是题目中的w[i]) 设f[i]为第二 ...
分类:
其他好文 时间:
2020-03-01 00:26:54
阅读次数:
69
题目链接 先dp求出以每个红色区域右下角为中心的能成为logo的最大半径 然后二维RMQ预处理,之后可O(1)询问任意子矩形中的最大值 最后对于每个询问二分最大logo的半径mid,这样问题就转化成判定是否存在半径大于等于mid的logo,在(x1+mid-1,y1+mid-1,x2-mid,y2- ...
分类:
其他好文 时间:
2020-02-29 22:38:09
阅读次数:
107
#include<bits/stdc++.h> using namespace std; const int maxn=((1<<17)+1014); int N,K; int a[maxn]; int dp[18][maxn][2][2]; //dp[i][j][x1][y1]表示从j开始,连续的 ...
分类:
其他好文 时间:
2020-02-29 20:53:26
阅读次数:
80
/*****(一)将n划分成若干不同整数之和的划分数************ dp[i][j]表示将整数i划分成不超过j的划分数,分含不含j两种情况 dp[0][0] = 1 dp[i][j] = dp[i-j][j-1] + dp[i][j-1];(j<=i) = dp[i][i] (j >i) ...
分类:
其他好文 时间:
2020-02-29 20:35:56
阅读次数:
82
将 $n$ 个数分成 $m$ 组,使得各组数据的数值和最平均,即各组的均方差最小。$n\leq 20,m \leq 6$ Solution 考虑如果是按顺序分段,那么设 $f[i]$ 表示前 $i$ 个数积攒的最小方差,dp即可 用 随机若干顺序,可以证明在很大概率上能随到答案 当然内部也可以贪心, ...
分类:
其他好文 时间:
2020-02-29 20:22:08
阅读次数:
62
现在我们有一个长度为n的整数序列A。但是它太不好看了,于是我们希望把它变成一个单调严格上升的序列。但是不希望改变过多的数,也不希望改变的幅度太大。求在改变的数最少的情况下,每个数改变的绝对值之和的最小值。 $n\leq 35000$,保证数据随机 Solution 第一问很容易,只需要令 $b_i= ...
分类:
其他好文 时间:
2020-02-29 18:40:47
阅读次数:
49
DP 首先先回忆一下dp,dp叫做记忆化搜索,是一种可以把暴力搜索中重复的部分重复利用,从而到达减小复杂度的目的。比如最应该熟悉的背包模型,如果你把选择的过程看成一步一步的,那么在这么多的搜索路径中一定有着很多很多的重复部分,dp就是一种把重复的部分加以利用的方法。相信大家都已经在以前的练习中已经明 ...
分类:
其他好文 时间:
2020-02-29 14:56:16
阅读次数:
88