问题描述 有 N 个信件和信箱,每封信件对应一个正确信箱位置。现在它们被打乱,求错误装信方式的数量。保证每一封信都装在错误的位置。 思路 抽象成动态规划问题 定义一个数组dp[]存储错误方式数量。dp[i]表示,有i封信、i个信箱情况下的错误装信方法总数。 转移方程建立 对于第N封信而言,假设其装在 ...
分类:
其他好文 时间:
2020-07-03 12:35:12
阅读次数:
208
如果不存在就不用去求最大值了,我们只求存在的最大值 如果存在,比如上一个数是j,且a[j] < a[i] aj ai这种情况 dp[j] + 1 所以dp[i] = max(dp[j] + 1),需满足aj < ai,j = 0, 1, ..., i - 1 时间复杂度:n * n 1 #inclu ...
分类:
其他好文 时间:
2020-07-03 12:26:35
阅读次数:
53
先来解释一下什么是线性dp 在求状态转移方程时,有明显的线性求取顺序 比如背包问题 这道题目我们先给数字编号 分析 dp问题的时间复杂度如何分析 一般是状态数量乘以转移的计算量(就是算每个状态需要的计算量) 本题大致就是500 * 500 1 #include <bits/stdc++.h> 2 u ...
分类:
其他好文 时间:
2020-07-03 10:31:36
阅读次数:
71
给两个整数数组 A 和 B ,返回两个数组中公共的、长度最长的子数组的长度。 示例 1: 输入: A: [1,2,3,2,1] B: [3,2,1,4,7] 输出: 3 解释: 长度最长的公共子数组是 [3, 2, 1]。 说明: 1 ? len(A), len(B) ? 1000 0 ? A[i] ...
分类:
编程语言 时间:
2020-07-03 01:17:50
阅读次数:
94
第一次写动态dp居然是这种毒瘤题 直接求稳定度为$x$感觉不好求 我们差分一下转为求稳定度小于等于$x$的所有方案减去稳定度小于等于$x-1$的所有方案 注意到叶子结点的权值都是不相同的 我们考虑贡献答案的叶子结点到根的那条链 考虑根节点的权值$w$改变实际上就是链上有点的权值改变了 所以我们考虑容 ...
分类:
其他好文 时间:
2020-07-02 22:06:45
阅读次数:
76
题目描述 传送门 设有N*N的方格图(N<=20,我们将其中的某些方格中填入正整数,而其他的方格中则放入数字0。如下图所示(见样例): 某人从图的左上角的A(1,1) 点出发,可以向下行走,也可以向右走,直到到达右下角的B(n,n)点。在走过的路上(包括起点在内),他可以取走方格中的数(取走后的方格 ...
分类:
其他好文 时间:
2020-07-02 22:05:33
阅读次数:
79
题目 思路 线性DP,思路很容易就能想到,f[i][k]数组定义为第i秒在k位置时从上一位置j转移过来的最优解,易得f[i][k]=max(f[i][k],f[i-1][j]+search(i,k)); 这里提一下本题一些细节 高度为1时,0时刻中间的馅饼必吃,都到嘴边了,难道要扔掉? 再就是在第i ...
分类:
其他好文 时间:
2020-07-02 22:04:09
阅读次数:
65
题意 给你一个数$n$,另$S(x)$表示$x$中各位数从小到大排序后的数,例如$S(120542)=12245$。 求$\sum_^n S(i)$ $1 \le n \le 10^{700}$ 传送门 思路 首先肯定是一道数位dp 考虑将某位数的贡献$x\times 10i$转化为$x$个$10i ...
分类:
其他好文 时间:
2020-07-02 21:54:30
阅读次数:
59
小烈送菜 小烈一下碰碰车就被乐满地的工作人员抓住了。作为扰乱秩序的惩罚,小烈必须去乐满地里的“漓江村”饭店端盘子。 服务员的工作很繁忙。他们要上菜,同时要使顾客们尽量高兴。一位服务生为 n个顾客上菜。这 n 个顾客坐成一排,小烈从一端的厨房中端出 n 盘菜(不要问我为什么小烈能一下子端住 2500 ...
分类:
其他好文 时间:
2020-07-02 21:26:01
阅读次数:
44
分组背包问题是物品有n组,每组里面有若干个物品,每组里最多选一个。 dp[i][j]只从前i组物品中选,且总体积不大于j的最大价值 状态计算:枚举第i组物品选哪个或不选 不选第i组物品,选第i组的第1个物品,选第i组的第2个物品,等等等等 二维做法 1 #include <bits/stdc++.h ...
分类:
其他好文 时间:
2020-07-02 18:12:21
阅读次数:
43