摘要: 哈希表又叫散列表,一种以 "key value" 形式存储数据的数据结构,C++11中的unordered​_map就是用哈希表实现的。 简单讲,就是计算出$key$的哈希值,然后对应到$value$上。这样查询就可以做到$O(1)$查询。 但是显然,哈希不可避免的就会出现哈希冲突。解决这个问题比较 阅读全文
posted @ 2019-11-01 09:33 锦依卫Lijilai 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 背包问题 01背包裸题。因为物品不可分割因此不可贪心。 搬书 Luogu P2374 看起来可以贪心,但是事实上由于体力系数在变化,因此每次选出每堆质量最大的书并不能得到最优解。于是考虑DP。设$dp[i][j][k]$表示当前考虑到每堆第$i,j,k$本书。当前状态只能由$dp[i 1][j][k 阅读全文
posted @ 2019-10-30 18:44 锦依卫Lijilai 阅读(281) 评论(0) 推荐(0) 编辑
摘要: 嗯这是一道搜索好题啊。 搜索题,按照詹爷说的,就是尝试构造搜索树或者一张图。我们显然可以构造一棵森林,由于画工很差就不放出来了。 尝试把每个数作为第一个数开始搜索,然后枚举没有被选过的数,再枚举四则运算,搜索到当前值为24时打印算式。 但是这道题细节非常多,(我一开始没仔细看只得了10分qwq)。 阅读全文
posted @ 2019-10-25 09:24 锦依卫Lijilai 阅读(162) 评论(0) 推荐(0) 编辑
摘要: Z君的密码 "题目链接" 真就按照题意暴力模拟就行。没别的方法。 保护费 "题目链接" 题意就是给一棵以1为根的有根树,求最少改变多少条边使得1到每个点的路径都满足安全边数量不少于危险边。 显然更改时贪心的想一定是尽量在深度较小处更新。为了统计结果,设数组a[i]表示从1到i路径上安全边与危险边的差 阅读全文
posted @ 2019-10-17 15:52 锦依卫Lijilai 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 补充ing。 动态规划(Dynamic Programming) + 基础DP + 背包问题 + 线性DP + 区间DP + 进阶DP + 树形DP + 状压DP + 数位DP + 优化决策 + 单调队列优化 + 斜率优化 图论 + 图的遍历 + 欧拉路径/欧拉回路 + 最小生成树 + Kruska 阅读全文
posted @ 2019-10-08 23:30 锦依卫Lijilai 阅读(278) 评论(0) 推荐(1) 编辑
摘要: 无向连通图 $G$ 有 $n$ 个点,$n−1$ 条边。点从 $1$ 到 $n$ 依次编号,编号为 $i$ 的点的权值为 $W_i$​,每条边的长度均为 $1$。图上两点 $(u, v)$ 的距离定义为 $u$ 点到 $v$ 点的最短距离。对于图 $G$ 上的点对 $(u, v)$,若它们的距离为 阅读全文
posted @ 2019-09-29 10:24 锦依卫Lijilai 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 1.01背包 倒序枚举 dp[i] = max(dp[i],dp[i - t[i]] + val[i]) 2.完全背包 正序枚举 dp[i] = max(dp[i],dp[i - t[i]] + val[i]) 阅读全文
posted @ 2019-09-09 11:07 锦依卫Lijilai 阅读(107) 评论(0) 推荐(0) 编辑
摘要: T1古代密码 统计字符出现次数,排序,看得到的两个数组相不相同就行了。 T2塔 找到最大的a使得a^3不超过m,接下来X的第一块积木必然为a或a-11.用a,m2=m-a^32.用a-1, X最大为a^3-1, m2 = a^3-1-(a-1)^3=a^2-a3.用a-2, X最大为(a-1)^3- 阅读全文
posted @ 2019-08-02 14:30 锦依卫Lijilai 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 分层图最短路问题,就是把一个图分层然后跑最短路(废话)。 分层图最短路问题关键在于怎么分层,分层通常是起到对题中某个条件的限定作用,这里我们结合例题看看。 Luogu P4568飞行路线 题意大致是给一个带权无向图,允许k次飞行费用为0,求最小费用。 这里就是将图分成k层,每次从第i-1层到第i层相 阅读全文
posted @ 2019-08-01 22:09 锦依卫Lijilai 阅读(1379) 评论(0) 推荐(1) 编辑
摘要: 其实就是一道线段树比板子稍稍难那么一点点的题。 当然这题需要对位运算要有一定深♂入的了解。修改操作要求对一个01串的区间整体xor1,查询操作是查询一个区间内1的个数。显然我们发现这种区间修改区间查询需要拿线段树搞一搞。首先是lazy标记,表示是否对当前区间进行异或操作。因为是01串,异或一次之后再 阅读全文
posted @ 2019-07-31 16:08 锦依卫Lijilai 阅读(147) 评论(0) 推荐(0) 编辑