上一页 1 2 3 4 5 6 ··· 18 下一页
摘要: 思路:考虑DP,对于每一位存在关键操作,操作后该位不再变化,之前该位状态无关紧要。设$f_S$表示集合$S$的位未固定,不在$S$的位已固定且与$y$相同的最小花费。预处理$g_S$,即集合$S$上与$y$相同的AND操作的最小费用,通过高位前缀和求解(因取$\min$无需容斥),OR操作同理。转移时枚举$S$补集的子集$T$,对AND操作,要求$y$在$T$位置均为$0$,可选AND操作在$T$位置为$0$且在$S$中为$1$的位置为$1$;OR操作类似。时间复杂度$O(2^k k + 3^k)$ 。 阅读全文
posted @ 2025-11-13 22:10 wing_heart 阅读(28) 评论(0) 推荐(2)
摘要: 题意:A和B玩游戏,给定长度为$n$($n \leq 10^5$)的序列,A先手。每轮先手选一切割点将序列分成两份,后手选留其中一份,然后交换先后手,游戏至剩一个数字结束,A希望数字尽可能大,B希望尽可能小,求最终剩下的数字。思路:除A先手外条件公平,猜测留下数字为中位数(偶数长序列认为有两个中位数)。通过给比中位数大的数字赋权值`+1`,其他`-1`,证明无论谁先手都取不到比中位数大的数字。对于偶数长且两中位数不等的情况,给$\geq$较大中位数的数字赋权值`1`,其他`-1`,分析原序列能分成极小权值和为`0`的序列个数$cnt$,$cnt$为奇数时先手输,偶数时先手赢,用`nth_element()`函数平均$O(n)$求解 。 阅读全文
posted @ 2025-11-13 10:39 wing_heart 阅读(19) 评论(0) 推荐(0)
摘要: 题意:每个商品有利润$w$和数量$c$,有三种操作:1. 对$[l,r]$商品的$w$加上$x$;2. 将商品$x$的$c$改成$c'$;3.查询$w×c$的最大值,$n,m \leq 10^5$,$|w|,|x|\leq 10^6$,$c,c'\leq 10^6$。思路:若无操作2,商品权值可表示为$wc + k×c$,需找到过点$(c,wc)$斜率为$k$直线的最大截距,对所有点维护上凸壳,通过二分找到与凸壳相切点得最大截距。因操作一是区间加,采用分块,对整块打标记,不满一块重构。操作2在凸壳上删点加点,操作三在每个块二分取最大值,可使用set或暴力维护凸壳,总时间复杂度约$O(n\sqrt n)$ 。 阅读全文
posted @ 2025-11-10 16:47 wing_heart 阅读(6) 评论(0) 推荐(0)
摘要: 2025 校运会小记 前言 update 2025.11.09 本来拖到这么久还没有开始写,大概是要咕咕掉了的。但是想到这个运动会还是太有意思了,所以写吧。这篇应该没有照片,因为懒得放,因为放照片是不是得把其他人(以及我自己?)码掉? 前置准备 开幕式 要结合竞赛元素。 那信息可以演啥啊??想出了很 阅读全文
posted @ 2025-11-09 20:20 wing_heart 阅读(62) 评论(3) 推荐(0)
摘要: 无。 阅读全文
posted @ 2025-11-03 19:53 wing_heart 阅读(73) 评论(0) 推荐(0)
摘要: 思路:一条路径能被某最小生成树覆盖,意味着路径边必选,在此情况下求最小生成树花费应等于无限制时的花费。先有$O(n^3 \alpha)$暴力,即枚举点对做最小生成树;$O(n^2 \log)$暴力则预处理各边权$w$下仅考虑$ 阅读全文
posted @ 2025-10-30 09:13 wing_heart 阅读(12) 评论(0) 推荐(1)
摘要: 题意:给定包含 `a,b,c` 的字符串,长度 $n \leq 2 \times 10^5$,求所有区间权值和,区间权值为出现次数最多字母的个数减去出现次数最少字母的个数(出现次数不为0)。思路:先统一式子,包含3种字母区间 $val_{l,r} = \frac{|c_a - c_b| + |c_b - c_c| + |c_c - c_a|}2$ ,包含2种字母区间 $val_{l,r} = |c_a - c_b|$ ,1种字母区间无贡献。为简化维护,贡献乘2去分母,枚举两个字母 $A,B$ ,对于含 $A,B$ 区间算 $2|c_A - c_B|$ ,含三种字母区间减多余贡献算 $-|c_A - c_B|$ 。枚举区间右端点 $r$ ,用 $cnt_x$ 存差值为 $x$ 的区间个数及偏移量 $tag$ 从 $r - 1$ 转移,时间复杂度为线性 。 阅读全文
posted @ 2025-10-23 09:57 wing_heart 阅读(56) 评论(0) 推荐(1)
摘要: 思路:对于超集子集相关操作,采用折半技巧。先考虑单点加、子集求和情况,设 $s_{x,y}$ 表示前10位严格是 $x$,后10位是 $y$ 的子集权值和,单点加枚举 $y$,子集求和枚举 $x$,时间复杂度 $O(q 2^{\frac n 2})$。对于子集加和超集加,分析其对子集求和的贡献,超集加贡献为 $[S \subseteq T] 2^{|T|-|S|}$,子集加贡献拆成两半 $2^{|S_1 \& T_1|} 2^{|S_2 \& T_2|}$,固定 $S_1$ 枚举 $T_2$ 计算贡献到 $f_{S_1,T_2}$,查询时固定 $T_2$ 枚举 $S_1$ 并结合另一半贡献求解,总时间复杂度 $O(q 2^{\frac n 2})$ 。 阅读全文
posted @ 2025-10-22 20:06 wing_heart 阅读(13) 评论(0) 推荐(1)
摘要: 广义串并联图 参考资料 https://www.luogu.com.cn/article/llclwny8 阅读全文
posted @ 2025-10-22 15:54 wing_heart 阅读(19) 评论(0) 推荐(0)
摘要: 题意:箱子有 $n$ 个数字($n \leq 5×10^5$,$a_i \leq 10^6$),每次抽数,得分是已抽数 $\gcd$,为 $1$ 时游戏结束,操作后可选择放回或不放回,求最优策略下期望最大、最小操作数。思路:最大期望操作数 $E_1$,每次放回,利用操作 $k$ 次 $\gcd = s$ 的概率 $p_{k,s}$ 及 $s \mid a_i$ 的个数 $c_s$ 求 $f_s$ 进而得 $E_1$;最小期望操作数 $E_2$,每次不放回,类似方法,通过 $g_s$ 求 $f_s$ 得 $E_2$ 。 阅读全文
posted @ 2025-10-21 18:53 wing_heart 阅读(12) 评论(0) 推荐(0)
摘要: 题意:对长度为 $n$($n \leq 2×10^5$ 且 $2 \nmid n$)的排列进行奇偶排序,求轮数。奇数轮对奇数位、偶数轮对偶数位,若前数大于后数则交换。思路:将排列转化为每行01串处理,求每行把后置0移到前端的轮数。设 $f_k$ 为第 $k$ 个0到正确位置轮数,$pos_k$ 为其位置,$f_k = \max(pos_k - k + [2 \nmid pos_k], f_{k - 1}+1)$ (特判 $pos_k = k$ )。只关心 $f_{cnt_0}$ ,可用线段树维护相关最大值,时间复杂度 $n \log n$ 。 阅读全文
posted @ 2025-10-19 19:59 wing_heart 阅读(9) 评论(0) 推荐(0)
摘要: 目前只有题一。 阅读全文
posted @ 2025-10-16 20:01 wing_heart 阅读(19) 评论(0) 推荐(0)
摘要: 题意:有$n$个城市、$m$个人机,初始人机在城市$a_i$ ,人机通过$2×2$矩阵以$\min +$卷积结算分数,其对ZJ评分是结算分数异或和。有$q$个在线且可持久化操作:1. $[l,r]$人机离开原城市结算并到城市$c$;2. 城市$c$人机矩阵乘矩阵$w$;3. 输出人机$x$离开ZJ的评分。$n,m,q \leq 2×10^5$。思路:无持久化时,用set维护人机状态,对各操作:操作2记录$tag$ ,操作1乘对应矩阵结算并更新段,操作3查询线段树。可持久化时,用线段树替代颜色段,操作2记录$tag$ ,操作1打标记,操作3合并操作序列,通过对每个节点维护操作序列首尾及中间贡献、利用版本树及倍增数组求城市矩阵乘积、可持久化线段树找同城市最近祖先等方法实现,时间复杂度$O(n \log^2)$ 。 阅读全文
posted @ 2025-10-15 21:45 wing_heart 阅读(8) 评论(0) 推荐(1)
摘要: 题意:给定$n$个节点树,给节点染$[0,m]$色,叶子有颜色要求$c_i$ ,求染色方案数,$n,m \leq 2×10^5$。思路:先设$f_{u,i}$为$u$子树中颜色$i$叶子未全找到对应节点的方案数,$f_{u,0}$为全找到的方案数,通过特定公式DP求解,复杂度$O(n^2)$。因仅子树有颜色$i$叶子时$f_{u,i}$非$0$,改用线段树合并,动态开点线段树维护$f$(仅非$0$部分)与$f_{u,0}$ ,空间$O(n \log m)$ ,线段树维护多种标记辅助合并 。 阅读全文
posted @ 2025-10-15 19:39 wing_heart 阅读(10) 评论(0) 推荐(0)
摘要: 题意:有 \(n\) 只虫子,第 \(i\) 只虫子想吃第 \(a_i\) 只虫子,虫子按随机排列 \(p\) 顺序行动,若 \(a_{p_i}\) 虚弱则被吃,否则 \(p_i\) 变虚弱,求被吃掉虫子的期望数量,\(n \le 500\)。思路:构建 \(i\) 到 \(a_i\) 的内向基环树森林,拆分算各虫子被吃概率。对第 \(i\) 只虫子,需满足 \(t_{a_i} < t_i\),\(\forall a_j = a_i \land t_{a_i} < t_j, t_i < t_j\) 及 \(a_i\) 行动时变虚弱。先判断前两个条件,满足则递归。设 \(f_i\) 为前 \(i\) 个点满足前两条件的方案数,用容斥原理,设 \(dp_{i,D}\) 表示考虑到链上第 \(i\) 个点,\(\sum_{j \le i} d_j = D\) 的方案数,利用插板法结合容斥系数 \((-1)^{\sum d_{i + 1}}\) 求解,对每个链头操作,时间复杂度 \(O(n^3)\)。 阅读全文
posted @ 2025-10-14 19:51 wing_heart 阅读(12) 评论(0) 推荐(1)
上一页 1 2 3 4 5 6 ··· 18 下一页