摘要:
一、算法简析 线性筛,又叫欧拉筛,用来筛出 \([2,n]\) 中所有的质数。该算法比埃氏筛的效率更高,为线性 \(O(N)\)。 该算法也是从小到大枚举每个数,若该数没筛掉,则为质数。但是,筛数的规则不同:此时枚举的数是 \(i\),无论是否是质数,枚举已知的质数 \(p_j\), 合数 \(i 阅读全文
摘要:
P8764 [蓝桥杯 2021 国 BC] 二进制问题 一、问题简析 本题采用数位dp求解。 令 \(f[i][j]=\) 在 \(i\) 位二进制中,有 \(j\) 个 \(1\),共有几个数。(相当于求组合数) 由于数据范围为 \(1\le N\le 10^{18}\),最大二进制位数设置为 7 阅读全文
摘要:
一、算法简析 数位dp题目的特点 求某个区间 \([L,R]\) 内,满足某种性质的数的个数。 数位dp的解题技巧 技巧一 类似前缀和,转换为 \([0,R]-[0,L-1]\) 求解。分别统计两个区间内满足条件的数的个数,再作差。 技巧二 由于边界 \(R\) 的限制,首先就要保证讨论的数小于等于 阅读全文
摘要:
对于导波装置中的电磁场,采用广义坐标系 \((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 阅读全文
摘要:
P8806 [蓝桥杯 2022 国 B] 搬砖 一、问题简析 本题采用 贪心 + 01背包。 令 \(a_i=\) 第 \(i\) 块砖; \(a_i.w=\) \(a_i\) 的质量; \(a_i.v=\) \(a_i\) 的价值。本题与 01背包 模板不同的地方是,本次选择的砖块会对后续的选择产 阅读全文
摘要:
P8805 [蓝桥杯 2022 国 B] 机房 一、问题简析 本题核心思想是求最近公共祖先,这里采用 \(Tarjan\) 算法求解。 以节点 \(1\) 作为树的根节点。令 \(dp_i=\) 节点 \(i\) 到根节点 \(1\) 的点权和; \(w_i\) 为节点 \(i\) 的权值,即该节点 阅读全文
摘要:
一、算法简析 \(Johnson\) 算法可以求解带负权边的中小图的全源最短路径。 算法步骤: 建立虚拟源点 \(0\),从 \(0\) 至其它各点添加权值为 \(0\) 有向边。 用 \(spfa\) 算法求出从 \(0\) 至其它各点的最短路径 h[i]。 将原图中边的权值改为:\(w(u,v) 阅读全文
摘要:
P8803 [蓝桥杯 2022 国 B] 费用报销 一、问题简析 本题是一道 01背包。重点是 \(K\) 的限制,使我们在取 \(a_i\) 时,不能无所顾忌地套用模板 \(dp_{i-1,j-a_i.worth}+a_i.worth\) 。我们必须找到上一张合法的 \(a_j\),即 \(a_j 阅读全文
摘要:
一、题目描述 将 \(2022\) 拆分成 \(10\) 个互不相同的正整数之和,有多少种方案? 二、问题简析 令 \(dp[i][j]=\) \(i\) 的 \(j\) 划分的方案数(满足互不相同的正整数)。有两种实现方式: \(dp[i][j]\) 不含 \(1\) 在 \(dp[i-j][j] 阅读全文
摘要:
一、问题描述 有 \(n\) 个相同的物品,将它们划分成 \(m\) 组,有几种划分方法。 注:以下划分都算一种: 1 + 1 + 2 1 + 2 + 1 2 + 1 + 1 二、问题简析 本题采用动态规划求解。令 \(dp[i][j]=\) \(i\) 的 \(j\) 划分的方案数。值得注意的是, 阅读全文