摘要: #算法 我们知道在原本的多重背包中 我们会将一个大小为$k$的物品 拆成$k$个大小为$1$的物品来进行$01背包$ 但我们发现这样处理一个物品时间复杂度将变为$O(kv)$ 这个复杂度在某些题目中是不能接受的 所以我们从拆分角度优化 我们考虑二进制优化拆分 这里有我的另外一篇博客 关于二进制拆分的 阅读全文
posted @ 2020-10-22 15:19 fhq_treap 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 算法 我们发现题目中$m < 5$很小 所以我们可以使用二进制压缩。 我们用$1$来表示$C$ 用$0$表示$P$,我们压缩的是当前这个状态的最后$m$位的状态 比如后$m$位是$CCPP$则压缩为$(1100)_2$这个数 接下来我们讨论一下状态如何转移 首先好像我对于一个状态的转移和其他题解的方 阅读全文
posted @ 2020-10-20 22:16 fhq_treap 阅读(108) 评论(0) 推荐(0) 编辑
摘要: #前情提要 是的 我终于回来补坑了 一年了哇 你这个鸽子王 #斜率优化版本 今天在复习斜率优化的时候才想起来这个题 定义就不设了 大家想看可以看上面那个原版 怎么斜率优化呢? 我们考虑$i$点是当前的目标状态 $j$点是当前的最优决策 则有如下这个式子 \(f_i = i\ *\ (cnt_i - 阅读全文
posted @ 2020-10-20 20:21 fhq_treap 阅读(110) 评论(0) 推荐(0) 编辑
摘要: #算法介绍 前置芝士:矩阵 矩阵乘法 这两个芝士并不是很难 重点可能在应用方面 首先介绍我所理解的广义的矩阵乘法:现在我们手上有两个矩阵$A$和$B$,我们期望得到一个答案矩阵$Ans$ 其中$Ans[i][j]\ =\ Ans[i][j]\ +\ (A[i][k]\ *\ B[i][k]) 其中 阅读全文
posted @ 2020-10-19 20:48 fhq_treap 阅读(107) 评论(0) 推荐(0) 编辑
摘要: #引入 今天在刷题的时候看到这样一个题: 在n个数中求出异或和的最大值 发现并不是很会 然后学了线性基 #算法介绍 若干数的线性基是一组数$a_1,a_2,...a_n$,其中$a_x$的最高位的$1$在第$x$位。 通过线性基中元素$xor$出的数的值域与原来的数$xor$出数的值域相同。 设线性 阅读全文
posted @ 2020-10-14 20:44 fhq_treap 阅读(1341) 评论(1) 推荐(5) 编辑
摘要: #题面 设一个数 \(x\) 去掉后缀零之后为 \(x'\) 长度为 \(a\) ,定义 \(x\) 的荒谬度为 $2a-[x';mod;10;= 5]$,多组询问,求 \([L,R]\) 内荒谬度最小的数(荒谬度相同则取最小的数) #算法 根据题意我们知道我们肯定要让最终答案的后缀零尽量多 另外还 阅读全文
posted @ 2020-10-13 21:36 fhq_treap 阅读(91) 评论(0) 推荐(0) 编辑
摘要: #题意 给定两个正整数 \(a\) 和 \(b\),求在 $[a,b]$中的所有整数中,每个数码(digit)各出现了多少次。 输入 1 99 输出 9 20 20 20 20 20 20 20 20 20 #算法 最近好像喜欢上数位DP了 这是一个三维的DP 设$dp[i][j][k]$ 设从后往 阅读全文
posted @ 2020-10-13 20:30 fhq_treap 阅读(81) 评论(0) 推荐(0) 编辑
摘要: #题目大意 给出一张无向连通图(点数小于1000),求S到E经过k条边的最短路。 #算法 这是之前国庆模拟赛的题 因为懒 所以就只挑一些题写博客 在考场上写了个dp 然后水到了50分 出考场和神仙们一问才知道是lyd蓝书原题 我们考虑有两个floyd的矩阵 A代表走了x条边的矩阵 B代表走了y条边的 阅读全文
posted @ 2020-10-12 20:08 fhq_treap 阅读(123) 评论(0) 推荐(0) 编辑
摘要: #题目 #算法 应该是一道很经典的数位dp题 我们设dp[i][j]是填到第i位此时第i位的数是j的方案数 然后进行转移(代码注释) #代码 #include<iostream> #include<cstdio> #include<cmath> #define ll long long using 阅读全文
posted @ 2020-10-12 19:57 fhq_treap 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 今年悲催的在外过国庆 + 中秋 100 + 82 + 70 + 2 = 257 全场Rk8(我太菜辽) #A 回家 (home) 1.1 题目描述 一只袋鼠在数轴上。0 时刻,袋鼠位于 0 处。在时刻 i−1 和 i 之间的时间段中, 袋鼠要么待在当前位置,要么向左或向右跳恰好 i 单位长度。也就是 阅读全文
posted @ 2020-10-01 21:01 fhq_treap 阅读(216) 评论(0) 推荐(1) 编辑