10 2021 档案

摘要:前言 我以为我想到正解了,事实证明并没有想到那个 特殊性质 (即形成封闭回路)以及整个搜索策略(一些细节的实现)。 sol: 感觉自己搜索白学了。 很显然是一道暴力 + 搜索的题。 观察到从任意一个点出发最后一定会回到原地(如果我们把原地转向这个东西也算在上面的话) 而任意 (i,j,dir) 在这 阅读全文 »
posted @ 2021-10-30 16:54 仰望星空的蚂蚁 阅读(14) 评论(0) 推荐(0) 编辑
摘要:无论如何都想不出的 dp 转移式: 设 dp[i][j] 表示当前考虑了 i 个白球和 j 种其他颜色的球的方案数。(首先要意识到白球和其他颜色球是本质不同的) 每次转移时找到从左往右第一个空位(逆向思维怎么都想不到啊 qwq) 所以说思维量确实还没达到 … 0 _ _ _ 0 1 _ _ 阅读全文 »
posted @ 2021-10-22 21:10 仰望星空的蚂蚁 阅读(2) 评论(0) 推荐(0) 编辑
摘要:sol: #include<bits/stdc++.h> #define ll long long #define inf 0x3f3f3f3f using namespace std; //诡异的数据范围 //观察可以发现 r_i 的数据范围很小,所以可以想到状压 //dp[i][j][s] 表示 阅读全文 »
posted @ 2021-10-21 16:48 仰望星空的蚂蚁 阅读(8) 评论(0) 推荐(0) 编辑
摘要:难。。。 第二次做这道题,还是思考了 1.5h 才胡出思路。 但是部分分很好拿。 考虑一种思想:将子节点的部分信息存储到父节点上,通过对操作序列的预判,向父节点传递标记,再对 DAG 上的每一个节点统计答案。 考虑对每个 复合函数 打一个标记,表示 对于当前操作涉及的所有操作 都会乘上一个 val 阅读全文 »
posted @ 2021-10-20 16:42 仰望星空的蚂蚁 阅读(34) 评论(0) 推荐(0) 编辑
摘要:题意 sol: 考点:思维 + 计数 dp 。(考验选手的 dp 和模型转化能力) 为了解决这道题,我们引入 极大作用区间 这个概念。即对于每个 P [ i ] P[i] P[i] 找到极大的区间 [ l i , r i ] [l_i,r_i] [li​,ri​] ,使得 P [ i ] P[i] 阅读全文 »
posted @ 2021-10-20 14:06 仰望星空的蚂蚁 阅读(7) 评论(0) 推荐(0) 编辑
摘要:考察:基本行列式变换。 用一个数乘行列式的任一列(行),等于用这个数乘此行列式。交换 A 的第 i 行和第 j 行,行列式的 值变号 。把行列式的某行(列)的 k k k 倍加到另一行(列)上,行列式的值不变。 例子 1: D = ∣ 3 2 2 2 2 3 2 2 2 2 3 2 2 2 2 3 阅读全文 »
posted @ 2021-10-19 14:25 仰望星空的蚂蚁 阅读(32) 评论(0) 推荐(0) 编辑
摘要:挺离谱的。 A~D 都不是很难,可惜 D 赛后 10 min 就切掉了。 今晚没有打牛客 (我还睡了一觉 qwq) A - Gold and Silver 比较考验阅读理解能力。 注意换和购入不能同时发生 只能 either 或 neither 所以最简单的方法就是 ^1 。 判断如果 a[i]>a 阅读全文 »
posted @ 2021-10-16 23:00 仰望星空的蚂蚁 阅读(13) 评论(0) 推荐(0) 编辑
摘要:需要一些脑洞。 充分体现了本蒟蒻 dp 菜的本质。 考虑 k=1 的情况。这种情况等价于,从 叶子结点 1 到根节点的所有祖先都被收买,且满足祖先节点都是子树的最大值。 那么我们考虑设 dp[i][j] 表示处理了前 i 个被收买的人,其中 j\in [0,2^n) 表示每个位置上的数是否被选择。转 阅读全文 »
posted @ 2021-10-16 10:33 仰望星空的蚂蚁 阅读(63) 评论(0) 推荐(0) 编辑
摘要:sol: 如果你把满足上述条件的所有等式画成一个矩阵,你会发现 所有非零元素(除了最后一列常数项)位于距离对角线 ±d 的范围内。对这样的矩阵进行高斯消元,称作带状矩阵的高斯消元。 如上图,带宽为 2 ,那么每次就是一个 2 * 2 矩阵的高斯消元。 上述消元过程是 o ( n d 2 ) o(nd 阅读全文 »
posted @ 2021-10-16 08:14 仰望星空的蚂蚁 阅读(5) 评论(0) 推荐(0) 编辑
摘要:sol: 提供一种比较简洁和巧妙的做法(二维状态高斯消元就不说了吧 qwq) 题解在代码注释里了。 #include<bits/stdc++.h> #define db double using namespace std; const int N=1e5+5; //纯数学推导: //设 dp[i] 阅读全文 »
posted @ 2021-10-15 21:35 仰望星空的蚂蚁 阅读(6) 评论(0) 推荐(0) 编辑
摘要:先来看第二题。 [USACO19FEB]Cow Dating P 这是一个关于概率的问题,即求一个最优区间满足恰好有一个成立的概率最大。 我们考虑从 n 到 n+1 有什么变化(这是解决这类问题的基本思路) 设 ∏ i = 1 n ( 1 − p i ) = x \prod_{i=1}^n (1-p 阅读全文 »
posted @ 2021-10-12 16:38 仰望星空的蚂蚁 阅读(8) 评论(0) 推荐(0) 编辑
摘要:摘要:运用待定系数法建立方程求解期望值。 「HDU4035」Maze 本题 n n n 比较大,很难用高斯消元求解。 考虑叶子节点,有关系式: d p [ i ] = k [ i ] ∗ d p [ 1 ] + ( 1 − k [ i ] − e [ i ] ) ( d p [ f a [ i ] 阅读全文 »
posted @ 2021-10-10 14:04 仰望星空的蚂蚁 阅读(10) 评论(0) 推荐(0) 编辑
摘要:sol: 利用分块思想,尽量利用整块的信息查询。 首先只考虑查询。从左往右遍历每个整块,如果 gcd ⁡ ( t m p , t [ i ] . gcd ⁡ ) < t m p \gcd(tmp,t[i].\gcd)<tmp gcd(tmp,t[i].gcd)<tmp 就暴力遍历块内所有元素,否则直 阅读全文 »
posted @ 2021-10-07 10:40 仰望星空的蚂蚁 阅读(8) 评论(0) 推荐(0) 编辑
摘要:为出题人点赞 T1. 找规律(良心出题人啊)。 假设 a [ i ] ≠ b [ i ] a[i]\neq b[i] a[i]​=b[i] 一共有 t m p tmp tmp 对,一定是 0 / 1 0/1 0/1 组合,那么剩下 0 / 1 0/1 0/1 的数量就是 c n t 0 / c n 阅读全文 »
posted @ 2021-10-07 10:05 仰望星空的蚂蚁 阅读(15) 评论(0) 推荐(0) 编辑
摘要:论文题(挺考验语文阅读能力的,足足花了我一晚上+一下午) 论文出处 首先感性地得到两个推论(这是我们后续按顺序 dp 的基础): 最有决策中一定是从大往小操作对于数 x 来说,要么在原地不动,要么移动到 x+1 的前一个位置 现在我们修改一下这个操作的定义: 我们不改变没有操作的点的位置,而是 并列 阅读全文 »
posted @ 2021-10-05 21:16 仰望星空的蚂蚁 阅读(14) 评论(0) 推荐(0) 编辑
摘要:想一下传送带 (233) 我记得我和 lh 说了可以对于一个整块把一堆操作放在一起处理 暴力匹配是 O ( n q ) O(nq) O(nq) 的。 但是如果加一个优先队列呢? 那你就可以在 O ( B l o g Q i ) O(BlogQ_i) O(BlogQi​) 的时间内复原这个块 (其中 阅读全文 »
posted @ 2021-10-05 17:28 仰望星空的蚂蚁 阅读(6) 评论(0) 推荐(0) 编辑
摘要:A. 最优方案中 a n s [ i ] [ j ] ≤ 17 ans[i][j]\leq17 ans[i][j]≤17 所以只要把 ≤ 17 \leq17 ≤17 的边连起来就好了 单次 dijkstra \text{dijkstra} dijkstra 时间复杂度 O ( ( n + m ) l 阅读全文 »
posted @ 2021-10-05 15:27 仰望星空的蚂蚁 阅读(3) 评论(0) 推荐(0) 编辑
摘要:这道题。。。 不要只拘泥于 期望 dp 从问题的本质入手,发现 f ( n , k ) f(n,k) f(n,k) 竟然是一个积性函数 !!! 即 f ( n , k ) = ∏ p 是 质 数 f ( p t , k ) f(n,k) = \prod_{p 是质数} {f(p^t,k)} f(n, 阅读全文 »
posted @ 2021-10-04 14:58 仰望星空的蚂蚁 阅读(6) 评论(0) 推荐(0) 编辑
摘要:核心思想:利用期望的线性性质 + 期望计算的独立性 首先看 x 2 x^2 x2 的做法: f 1 f1 f1 表示当前这个位置长度的期望 f 2 f2 f2 表示当前这个位置长度平方的期望 ( x + 1 ) 2 = x 2 + 2 x + 1 (x+1)^2 = x^2 + 2x + 1 (x+ 阅读全文 »
posted @ 2021-10-04 10:53 仰望星空的蚂蚁 阅读(4) 评论(0) 推荐(0) 编辑
摘要:sol: 本人绞尽脑汁在想只带一个 log 的算法 (可惜没有想出来) 最后还是只能二分 233 … 核心思想 : 倍增 + 二分答案。 对于左边部分路径,由于起点是固定的,可以直接倍增搞定。 这时候右边部分路径的起点就是 x (我们通过上一个步骤求出来的答案) 其实左半部分和右半部分的求法本质不同 阅读全文 »
posted @ 2021-10-01 20:46 仰望星空的蚂蚁 阅读(7) 评论(0) 推荐(0) 编辑
摘要:sol: 这道题是求两点间第 k 小的数。 常规做法树链剖分是三个 log ,LCA + 主席树可以做到一个 log 。 所以提供一个维护树上信息的新姿势:用主席树维护当前点到根的路径的信息,借助 LCA 做到直接查询。(经典的运用还比如求路径最小 / 大值之类的)。 局限性在于不能维护较复杂的信息 阅读全文 »
posted @ 2021-10-01 18:10 仰望星空的蚂蚁 阅读(4) 评论(0) 推荐(0) 编辑
摘要:sol: 考虑用树套树维护二维信息。 这里标记比较复杂,所以不好下传,考虑 标记永久化。 每次修改区间的时候,把遍历到的点都修改 mx ,对于完全覆盖的区间则同时修改 tag 和 mx 。(这里的修改可以是区间加,也可以是区间取 max)。 查询的时候,如果是完全覆盖的区间就返回 mx ,否则当前点 阅读全文 »
posted @ 2021-10-01 09:05 仰望星空的蚂蚁 阅读(6) 评论(0) 推荐(0) 编辑
摘要:考点:分治思想 + 线段树。 (区间问题常见思考方式 考虑区间答案 = 左区间答案 + 右区间答案 + 跨区间答案。 注意到每次加入一个数时 gcd 要么不变,要么缩小到原来的 1/2 所以本质上只用 log a_i 个不同取值 这样双指针扫描就可以通过本题。 #include <bits/stdc 阅读全文 »
posted @ 2021-10-01 08:51 仰望星空的蚂蚁 阅读(9) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示