05 2024 档案

摘要:P8792 [蓝桥杯 2022 国 A] 最大公约数 一、问题简析 st表 + 二分 思路 要使数列都变成 \(1\),首先数列中要有 \(1\)。因为题目要求是用两个数的 \(gcd\) 代替其中一个数,所以我们要找到一个区间 \([L, R]\),该区间的 \(gcd\) 等于 \(1\)。 证 阅读全文
posted @ 2024-05-27 10:52 ltign 阅读(14) 评论(0) 推荐(0) 编辑
摘要:一、算法简析 功能:主要用于查询区间的最值、\(gcd\)、\(lcm\)等。 效率:预处理 \(O(nlogn)\),查询 \(O(1)\)。 注:\(st\) 表用于区间查询。若要区间修改,要用线段树。 以区间最大值为例,介绍 \(st\) 表。 预处理 令 \(st[i][j]=\) 以第 \ 阅读全文
posted @ 2024-05-27 09:32 ltign 阅读(11) 评论(0) 推荐(0) 编辑
摘要:P8736 [蓝桥杯 2020 国 B] 游园安排 一、问题简析 本题考点是 最长上升子序列。 二分查找 根据模板,我们需要实现一个二分查找,找到 dp 中首个大于等于 A[i] 的元素。比较的规则是字典序。 // 按字典序比较A[a]和A[b],return A[a] < A[b] bool cm 阅读全文
posted @ 2024-05-26 19:57 ltign 阅读(8) 评论(0) 推荐(0) 编辑
摘要:本文参考博客 [蓝桥杯 2021 国 AB] 翻转括号序列(线段树上二分) 一、问题简析 线段树 + 二分 初步分析 令 ( 的值为 1,) 的值为 -1,则对于序列 \(a_La_{L+1}a_{L+2}...a_R\),其为合法序列的条件为 \[\begin{cases} \sum_{n=L}^ 阅读全文
posted @ 2024-05-24 20:52 ltign 阅读(14) 评论(0) 推荐(0) 编辑
摘要:P10513 括号 一、题目简析 本题采用 线段树 求解。 节点的定义 struct node { int l, r; int lcnt, rcnt; // lcnt -- (的个数; rcnt -- )的个数 int ans, anti; // ans -- ()的个数; anti -- )(的个 阅读全文
posted @ 2024-05-23 10:31 ltign 阅读(12) 评论(0) 推荐(0) 编辑
摘要:一、模板 #define lc(p) p << 1 // 左孩子 #define rc(p) p << 1 | 1 // 右孩子 const int MAX = 5e5 + 5; // 数列元素最大个数 ll n, m, w[MAX]; // n -- 数列元素个数; m -- 操作数; w[i] 阅读全文
posted @ 2024-05-22 15:12 ltign 阅读(7) 评论(0) 推荐(0) 编辑
摘要:一、算法简析 BSGS算法(Baby Step Giant Step),可以求解高次同余方程。 条件 正整数 \(a,b,p\),且 \(a\) 与 \(p\) 互质,求满足 \(a^x\equiv b~(mod~p)\) 的最小非负整数 \(x\)。 化简 由拓展欧拉定理,得到 \[a^x\equ 阅读全文
posted @ 2024-05-21 21:32 ltign 阅读(3) 评论(0) 推荐(0) 编辑
摘要:基础概念 欧拉定理 对于正整数 \(a\) 和 \(m\),若满足 \(gcd(a,m)=1\),则 \(a^{\varphi(m)}\equiv1~(mod~m)\)。\(\varphi(m)\) 为 \(m\) 的欧拉函数。 拓展欧拉定理 在 \((mod~m)\) 的前提下, \[a^b\eq 阅读全文
posted @ 2024-05-21 19:48 ltign 阅读(3) 评论(0) 推荐(0) 编辑
摘要:一、欧拉函数 定义 \([1,n]\) 中与 \(n\) 互质的数的个数,称为欧拉函数,记为 \(\varphi(n)\)。 互质的定义:对于正整数 \(a\) 和 \(b\),若 \(gcd(a,b)=1\),则 \(a\) 和 \(b\) 互质。 性质 若 \(p\) 是质数,则 \(\varp 阅读全文
posted @ 2024-05-21 17:23 ltign 阅读(29) 评论(0) 推荐(0) 编辑
摘要:一、算法简析 线性筛,又叫欧拉筛,用来筛出 \([2,n]\) 中所有的质数。该算法比埃氏筛的效率更高,为线性 \(O(N)\)。 该算法也是从小到大枚举每个数,若该数没筛掉,则为质数。但是,筛数的规则不同:此时枚举的数是 \(i\),无论是否是质数,枚举已知的质数 \(p_j\), 合数 \(i 阅读全文
posted @ 2024-05-21 15:37 ltign 阅读(12) 评论(0) 推荐(0) 编辑
摘要:P8764 [蓝桥杯 2021 国 BC] 二进制问题 一、问题简析 本题采用数位dp求解。 令 \(f[i][j]=\) 在 \(i\) 位二进制中,有 \(j\) 个 \(1\),共有几个数。(相当于求组合数) 由于数据范围为 \(1\le N\le 10^{18}\),最大二进制位数设置为 7 阅读全文
posted @ 2024-05-19 21:47 ltign 阅读(8) 评论(0) 推荐(0) 编辑
摘要:一、算法简析 数位dp题目的特点 求某个区间 \([L,R]\) 内,满足某种性质的数的个数。 数位dp的解题技巧 技巧一 类似前缀和,转换为 \([0,R]-[0,L-1]\) 求解。分别统计两个区间内满足条件的数的个数,再作差。 技巧二 由于边界 \(R\) 的限制,首先就要保证讨论的数小于等于 阅读全文
posted @ 2024-05-19 20:31 ltign 阅读(4) 评论(0) 推荐(0) 编辑
摘要:对于导波装置中的电磁场,采用广义坐标系 \((u_1,u_2,z)\)(\(u_1\) 和 \(u_2\) 为导波装置横截面上的坐标,\(z\) 为纵向坐标),场强可分为纵向分量 \(E_z(u_1,u_2,z),~H_z(u_1,u_2,z)\) 和横向分量 \(E_t(u_1,u_2,z),~H 阅读全文
posted @ 2024-05-18 14:51 ltign 阅读(50) 评论(0) 推荐(0) 编辑
摘要:P8806 [蓝桥杯 2022 国 B] 搬砖 一、问题简析 本题采用 贪心 + 01背包。 令 \(a_i=\) 第 \(i\) 块砖; \(a_i.w=\) \(a_i\) 的质量; \(a_i.v=\) \(a_i\) 的价值。本题与 01背包 模板不同的地方是,本次选择的砖块会对后续的选择产 阅读全文
posted @ 2024-05-16 12:01 ltign 阅读(22) 评论(0) 推荐(0) 编辑
摘要:P8805 [蓝桥杯 2022 国 B] 机房 一、问题简析 本题核心思想是求最近公共祖先,这里采用 \(Tarjan\) 算法求解。 以节点 \(1\) 作为树的根节点。令 \(dp_i=\) 节点 \(i\) 到根节点 \(1\) 的点权和; \(w_i\) 为节点 \(i\) 的权值,即该节点 阅读全文
posted @ 2024-05-15 22:39 ltign 阅读(13) 评论(0) 推荐(0) 编辑
摘要:一、算法简析 \(Johnson\) 算法可以求解带负权边的中小图的全源最短路径。 算法步骤: 建立虚拟源点 \(0\),从 \(0\) 至其它各点添加权值为 \(0\) 有向边。 用 \(spfa\) 算法求出从 \(0\) 至其它各点的最短路径 h[i]。 将原图中边的权值改为:\(w(u,v) 阅读全文
posted @ 2024-05-15 16:53 ltign 阅读(13) 评论(0) 推荐(0) 编辑
摘要:P8803 [蓝桥杯 2022 国 B] 费用报销 一、问题简析 本题是一道 01背包。重点是 \(K\) 的限制,使我们在取 \(a_i\) 时,不能无所顾忌地套用模板 \(dp_{i-1,j-a_i.worth}+a_i.worth\) 。我们必须找到上一张合法的 \(a_j\),即 \(a_j 阅读全文
posted @ 2024-05-15 14:36 ltign 阅读(22) 评论(0) 推荐(0) 编辑
摘要:一、题目描述 将 \(2022\) 拆分成 \(10\) 个互不相同的正整数之和,有多少种方案? 二、问题简析 令 \(dp[i][j]=\) \(i\) 的 \(j\) 划分的方案数(满足互不相同的正整数)。有两种实现方式: \(dp[i][j]\) 不含 \(1\) 在 \(dp[i-j][j] 阅读全文
posted @ 2024-05-13 11:43 ltign 阅读(14) 评论(0) 推荐(0) 编辑
摘要:一、问题描述 有 \(n\) 个相同的物品,将它们划分成 \(m\) 组,有几种划分方法。 注:以下划分都算一种: 1 + 1 + 2 1 + 2 + 1 2 + 1 + 1 二、问题简析 本题采用动态规划求解。令 \(dp[i][j]=\) \(i\) 的 \(j\) 划分的方案数。值得注意的是, 阅读全文
posted @ 2024-05-13 11:02 ltign 阅读(12) 评论(0) 推荐(0) 编辑
摘要:P9426 [蓝桥杯 2023 国 B] 抓娃娃 一、问题简析 由题意,\(max\{r_i-l_i\}<=min\{R_i-L_i\}\),只要 \([l_i,r_i]\) 的中点在 \([L_i,R_i]\),则线段的一半肯定在区间中,即线段在区间中。我们可以先拿数组 A 存储各点处线段中点的个 阅读全文
posted @ 2024-05-12 21:13 ltign 阅读(36) 评论(0) 推荐(0) 编辑
摘要:P9425 [蓝桥杯 2023 国 B] AB 路线 一、问题简析 本题是一道 \(BFS\) 题。与普通的广搜题不同的是,本题中,格子可以多次访问。因此,vis 数组不能只用二维,要进行升维。 本题中,每个节点包含以下信息: struct node { pair<int, int> loc; // 阅读全文
posted @ 2024-05-12 20:08 ltign 阅读(34) 评论(0) 推荐(0) 编辑
摘要:一、最近公共祖先(LCA) LCA:Least Common Ancestor P3379 【模板】最近公共祖先(LCA) #include <bits/stdc++.h> using namespace std; typedef long long ll; ll quickin(void) { l 阅读全文
posted @ 2024-05-11 18:33 ltign 阅读(23) 评论(0) 推荐(0) 编辑
摘要:一、P2812 校园网络【[USACO]Network of Schools加强版】 P2812 校园网络【[USACO]Network of Schools加强版】 1、算法简析 首先,建立一张有向图——学校是节点,学校间的单向线路是有向边。\(Q_1\):选出若干个节点,从这些节点出发可以到达其 阅读全文
posted @ 2024-05-08 16:42 ltign 阅读(7) 评论(0) 推荐(0) 编辑