随笔分类 -  OI

摘要:现在可能理解不是太深刻,但是我还是想把我不深刻的理解记录下来,以防忘记 概念 有一类DP状态方程: \(\displaystyle dp[i] = min\{dp[j]-a[i]d[j]\},\ 0\leq j<i,d[j]\leq d[j+1],a[i]\leq a[i+1]\) 它的特征是存在一 阅读全文
posted @ 2025-08-11 10:15 michaele 阅读(8) 评论(0) 推荐(0)
摘要:单调队列优化DP 优化多重背包 给定 \(N\) 种物品,每个物品有价值 \(v_i\) ,体积 \(w_i\) ,数量 \(c_i\) 有一个容量为 \(M\) 的背包,求最大价值 我们可以用二进制拆分法将每个物品拆分,时间复杂度为 \(O(M \sum \log c_i)\) 这里我们介绍单调队 阅读全文
posted @ 2025-08-11 10:14 michaele 阅读(19) 评论(0) 推荐(0)
摘要:中国剩余定理 中国剩余定理(CRT) 孙子算经 今有物不知其数,三三数之余二;五五数之余三;七七数之余二。问物几何? 像这样的问题,我们可以将它简化为下面的一个同余方程组 \[\left\{ \begin{align*} x \equiv 2 \ (\bmod3) \\ x \equiv 3 \ ( 阅读全文
posted @ 2025-08-09 11:02 michaele 阅读(49) 评论(0) 推荐(0)
摘要:数位dp之记忆化搜索 原文章 前言 数位dp主要解决 “在区间 [l , r] 这个范围内,满足某种 约束 的数字的 数量、总和、平方 ” 的这类问题 针对这种问题,有两种写法:记忆化搜索 和 迭代写法 这里我们采用记忆化搜索的写法,因为好写、思路较为清晰 引入 数位dp有个通用套路:将求解 [l, 阅读全文
posted @ 2025-06-25 16:08 michaele 阅读(37) 评论(0) 推荐(0)
摘要:ABC405 A ~ E 题解 A、B 略 A code #include <iostream> #include <algorithm> #include <cstring> #include <cstdlib> #include <cstdio> using namespace std; con 阅读全文
posted @ 2025-05-11 11:49 michaele 阅读(29) 评论(0) 推荐(0)
摘要:高精度模板 这是我因为一个小错调了一中午苦苦钻研凝结出的精华,请放心食用 本博客涉及高精度加、减、乘、除、取余 目录在右手边浮动小球处 定义&初始化 定义 struct bn { ll num[N] = {0}; int len = 1, fu = 0; void init_num (ll x); 阅读全文
posted @ 2025-05-10 15:49 michaele 阅读(13) 评论(0) 推荐(0)
摘要:A 题面 给你一个长度介于 \(1\sim25\) 之间的字符串 \(S\) ,它由小写英文字母组成。 请输出一个没有出现在 \(S\) 中的小写英文字母。如果有多个,输出其中任意一个即可。 题解 直接用一个 \(vis[]\) 记录每个字母是否出现过即可 code #include <iostre 阅读全文
posted @ 2025-05-07 16:34 michaele 阅读(50) 评论(0) 推荐(0)
摘要:题面及题解 T1 题面 众所周知,小乐家非常有钱,他家有一个 \(2n \times 2m\) 的矩形水池,被一些宽度不记的隔板隔开,每个 \(2 \times 2\) 的小矩形中都有两块弧形隔板,且只可能是这两种图案中的一种: 这两种图形都由一个边长为 \(2\) 的正方形和两个半径为 \(1\) 阅读全文
posted @ 2025-05-06 16:02 michaele 阅读(0) 评论(0) 推荐(0)