随笔分类 -  题解

摘要:题解摘自做题记录。 分析 数据范围明显得要让我们分开搞。 【Sub2】 应该是暴力。这里有个主体思路,我们完全可以贪心地将当前背包里的食材删掉,直到每种出现过的食材数量刚好为 1。因为我们保留更多的是没有用的。那么我们就可以用二进制数表示 x 种食材的出现状态了。 同时,可能存在当前 阅读全文
posted @ 2024-11-14 21:51 harmis_yz 阅读(3) 评论(0) 推荐(1) 编辑
摘要:分析 推式子题。 ans=i=1nj=1mτ(i)τ(j)τ(gcd(i,j))对于 (i,j),若 k(i,j) 的因子,则 k 一定整除 i,j,所以有 阅读全文
posted @ 2024-03-08 18:45 harmis_yz 阅读(13) 评论(0) 推荐(1) 编辑
摘要:分析 考虑 DP。 定义状态函数 fi 表示处理完前 i 个字符且第 i 个字符为 1 时的最小代价。则对于 i,有两种情况: i 不是第一个 1,则上一个 1 的位置必定为 iki 是第一个 1,没有上 阅读全文
posted @ 2024-03-07 14:31 harmis_yz 阅读(6) 评论(0) 推荐(1) 编辑
摘要:分析 考虑莫队。 令 S=lcm(al,al+1,al+2,,ar1)。则对于新加进来的 ar,有: \[\begin{aligned} & \ \ \ \ \ \operatorname{lcm}(a_l,a_{l+1 阅读全文
posted @ 2024-03-07 13:43 harmis_yz 阅读(29) 评论(1) 推荐(1) 编辑
摘要:分析 考虑二分答案。 对于当前二分的答案 x,设 cnt 表示 Farey 序列中 pqx 的满足条件的数量。对于一组 (i,j),若 jix,则 \(j \le\lfloor i \times x \rf 阅读全文
posted @ 2024-03-07 13:43 harmis_yz 阅读(9) 评论(0) 推荐(0) 编辑
摘要:分析 考虑线段树。 20 分 统计节点懒标记,在每次询问之前统一下传 (lst,i1) 的修改懒标记,lst 是上一次询问的位置。 40 分 在统一下传的过程中打标记,如果当前节点的某个儿子所在子树中没有需要下传懒标记的节点,则不更新那个儿子的内容。 70 阅读全文
posted @ 2024-03-07 13:42 harmis_yz 阅读(12) 评论(0) 推荐(0) 编辑
摘要:分析 考虑莫队。 对于 ai=k(lir) 的下标集合 Sk,当其加入一个新的下标 x 时,这个新下标对答案的贡献分两种情况。 第一种,x 最小。相邻从下标的间隔中产生的贡献是 \(\sum (|S_k|-i+1)\times(ans_{S_{ 阅读全文
posted @ 2024-03-07 13:42 harmis_yz 阅读(4) 评论(0) 推荐(0) 编辑
摘要:分析 弱智题。 和这题很像。 想到 DP。定义状态函数 fi,j 表示区间 [i,j] 中的答案。这玩意直接暴力 O(n3) 算区间 DP,能有 35 分。 考虑优化,如果定义 fi,j=0/1 表示子串 \( 阅读全文
posted @ 2024-03-07 13:42 harmis_yz 阅读(91) 评论(0) 推荐(0) 编辑
摘要:分析 水题,评分能有 2100 可能是因为很多人卡 E 了。 我说真的,E 好难啊。 n 只有 20,考虑从状压的角度入手。定义状态函数 fs,i 表示当某个字符串 T 包含了所有 s 的二进制中为 1 的下标 Sj 且 \(T 阅读全文
posted @ 2024-03-07 13:42 harmis_yz 阅读(10) 评论(0) 推荐(0) 编辑
摘要:分析 出得很好,模板套模板,希望下次再来。 难点在于维护最后连续喝的 DS 饮料数量。设这次喝原味饮料的区间为 [l,r],上一次为 [l,r]。则有两种情况: [l,r][l,r] 不相交。如: 在 [l,r][l,r] 两个 阅读全文
posted @ 2024-03-07 13:42 harmis_yz 阅读(10) 评论(0) 推荐(0) 编辑
摘要:分析 考虑乱搞。 对于求次大值,用线段树维护就行了。记录下每个区间的最大、次大值。则两个子区间的父区间的最大值就是这四个最大的,次大值就是这四个次大的。复杂度 O(logn)。 求次大值的出现次数,乱搞就行了。因为带修,带修莫队或者分块有些麻烦。其实用线段树就行。在维护区间最大、次大值的 阅读全文
posted @ 2024-03-07 13:41 harmis_yz 阅读(12) 评论(0) 推荐(0) 编辑
摘要:分析 考虑暴力 DP。 定义状态函数 fi,j,k1,k2 表示前 i+j 个人中,有 i 个步兵和 j 个骑兵且末尾连续步兵数量为 k1,连续骑兵数量为 k2 的方案数。 由于末尾连续的要么是步兵要么是骑兵,所以状态中 k1,k2 只会 阅读全文
posted @ 2024-03-07 13:41 harmis_yz 阅读(20) 评论(0) 推荐(0) 编辑
摘要:分析 考虑 DP。 因为 n3000,我们可以直接枚举插针的位置。定义状态函数 fi 表示在从左往右第 i 个小球的位置上插针的最小花费。 枚举该小球右边第一个插针的位置,则 ij1 的小球都会滚到小球 i 的位置。代价为 \(\s 阅读全文
posted @ 2024-03-07 13:41 harmis_yz 阅读(14) 评论(0) 推荐(0) 编辑
摘要:分析 考虑 DP。 定义状态函数 fi,j 表示在 s[1i] 中选一个子串 a,在 t[1j] 中选一个子序列 b,且 si,tj 必选时 a=b 的方案数。则有两种情况: sitj阅读全文
posted @ 2024-03-07 13:40 harmis_yz 阅读(8) 评论(0) 推荐(0) 编辑
摘要:分析 分类讨论。 对 |pipj|+|ij| 分类讨论,有: (pi+i)(pj+j)pi>pji>j(pii)+(pjj)pi<pji>j(pii)(pjj),\(p_ 阅读全文
posted @ 2024-03-07 13:39 harmis_yz 阅读(8) 评论(0) 推荐(0) 编辑
摘要:分析 考虑状压。 定义状态函数 fi,j 表示在经过点的情况为 i 且最后停在点 j 的最小花费。那有:fi,j=min{fi,k+wkj|kj}。然后就过不了样例一。根据样例一,可以发现 \(f_{3,2}=f_{2 阅读全文
posted @ 2024-03-07 13:39 harmis_yz 阅读(7) 评论(0) 推荐(0) 编辑
摘要:分析 考虑 DP。 先考虑 A 的答案。定义状态函数 fi,j 表示在子串 S1i 中选 j 个,且第 Si 必选的方案数。则有:fi,j=Ci1j1。 再考虑 B 的答案。枚举每一个位置 \( 阅读全文
posted @ 2024-03-07 13:38 harmis_yz 阅读(14) 评论(0) 推荐(0) 编辑
摘要:分析 参照去年普及组 T4,很显然能发现就是一个暴力最短路。设 disi,j 表示从 1 走到 i 且能得到的 s 最小为 j 时的最短路。那么答案就是 min{disn,i|1iV}。 考虑最短路转移。对于当前的 阅读全文
posted @ 2024-03-07 13:38 harmis_yz 阅读(8) 评论(0) 推荐(0) 编辑
摘要:分析 考虑区间 DP。 定义状态函数 fl,r,1/0 表示在 Pl,Pl+1,,Pr 这些点中,Pl 是或不是唯一(子)树根时的答案。 对于 fl,r,1Pl 的第一个儿子一定是 \( 阅读全文
posted @ 2024-03-07 13:37 harmis_yz 阅读(5) 评论(0) 推荐(0) 编辑
摘要:分析 和 T5 差不多的思路。把所有的绿色格子看做图上的点,对于将每个绿色格子变成红色时连通块增加的数量,实际上就是无向图中删掉某个点连通分量变化量的问题。 对于删掉某个点后连通分量变化量,有三种情况: 节点是孤点,删掉后连通分量增加 1。 节点是割点,删掉后连通分量增加其所在点双数量 \ 阅读全文
posted @ 2024-03-07 13:37 harmis_yz 阅读(2) 评论(0) 推荐(0) 编辑

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