10 2023 档案

摘要:CF1271E 简单题。 首先直接从 k 入手是不好做的,于是从每个值进行考虑。 发现能到达 x 的点有两种情况,分类讨论一下。 x 为奇数时,上一个数一定是 2xx 为偶数时,上一个数为 x+12x。 奇数一次过后就会变为偶数,所以对偶数再推一步 $2x+2, 阅读全文
posted @ 2023-10-18 10:43 Pengzt 阅读(10) 评论(0) 推荐(0) 编辑
摘要:ARC163D 发现这个竞赛图一定能被分为两个集合 AB。满足 uA,vB,均有 uvE。答案就是划分这两个集合的方案数。 证明: 首先,竞赛图缩完点后一定是一条链,对强连通分量进行标号,满足编号小的强连通分量指向编号 阅读全文
posted @ 2023-10-18 09:31 Pengzt 阅读(12) 评论(0) 推荐(0) 编辑
摘要:P9212 看到除法相关容易想到根号分治。 先对 x,y 进行讨论,不妨令 0x,y<mx<y 时,当满足 ai+y<mai+xm 时,即当 ai<myaimx 满足 \((a_i+x)\ 阅读全文
posted @ 2023-10-18 09:30 Pengzt 阅读(36) 评论(0) 推荐(0) 编辑
摘要:CF1542E2 首先时间复杂度肯定是 O(n3) 的。 容易想到先枚举最长公共前缀,然后枚举 plen+1qlen+1,再枚举逆序对数进行统计。 令 fi,j 表示有 j 个逆序对的 i 阶排列的个数。 阅读全文
posted @ 2023-10-18 09:29 Pengzt 阅读(7) 评论(0) 推荐(0) 编辑
摘要:CF1542E1 首先时间复杂度肯定是 O(n3) 的。 容易想到先枚举最长公共前缀,然后枚举 plen+1qlen+1,再枚举逆序对数进行统计。 令 fi,j 表示有 j 个逆序对的 i 阶排列的个数。 阅读全文
posted @ 2023-10-18 09:27 Pengzt 阅读(15) 评论(0) 推荐(0) 编辑
摘要:CF1856E2 差点场切啊。 默认已会 E1。 考虑对 E1 进行优化,发现瓶颈在于背包。 设当前子树以 u 为根,容易发现 sizvi=sizu1,显然要从这里下手。发现总值域较小是与普通背包不同的地方,要么个数少,要么值域小。不妨设背包的总容量为 \(W\ 阅读全文
posted @ 2023-10-18 09:26 Pengzt 阅读(16) 评论(0) 推荐(0) 编辑
摘要:CF1856E1 发现题目的要求只需要相对的大小关系,考虑一个子树时,不妨令子树内部编号连续。类似于一个 dp,这样也可以更好地将信息由儿子转移到父亲。 设 u 的孩子为 v1,v2,,vk。由于每棵子树内的编号是连续的,令以 vi 为根的子树的编号为 \( 阅读全文
posted @ 2023-10-18 09:22 Pengzt 阅读(8) 评论(0) 推荐(0) 编辑
摘要:P5189 容易想到区间 dp,考虑设计状态。 首先如果只有 l,r 两维的话,是无法转移的。然后发现 m 是转移的一个必要的条件,可加入 m 这一维。由于是区间 dp,所以只需考虑向左或向右加珠子,不妨令 fi,j,k 消除 [i,j] 以及 \(i\ 阅读全文
posted @ 2023-10-18 09:18 Pengzt 阅读(28) 评论(0) 推荐(1) 编辑
摘要:P3464 显然的,先将原数变为四进制的数。 由于算的是进位/不进位的代价最小值和方案数,容易想到 dp。 这里假定该四进制数是从高位到低位的,顺序显然是由低位到高位。 令 fi,0/1 表示第 i 位进 / 不进位的最小代价,gi,0/1 表示的是最小代价下的方 阅读全文
posted @ 2023-10-18 09:13 Pengzt 阅读(17) 评论(0) 推荐(0) 编辑
摘要:P9744 因为给定的 1 的个数是有限的,所以一定是枚举 pipi+1 的段进行更新。发现操作一最多只会执行一次,枚举在哪里执行操作一,然后对答案进行更新。因为 pi 前面的 1 不管怎么都需要清 0,这部分代价可以单独计算。但是有可能是在 $j\in[p_ 阅读全文
posted @ 2023-10-18 09:02 Pengzt 阅读(8) 评论(0) 推荐(0) 编辑
摘要:ABC251F 题意:给一个图,求出两棵这个图的生成树,分别满足没有横叉边和返祖边,并输出这两棵树的形态。 首先是没有横叉边,如果学过 Tarjan 的话,肯定可以直接 DFS 一遍就可以了。因为只要遇到横叉边,在之前的点的搜索中优先走这条边,一定可以变为所有边都是树边或返祖边。 同理,因为要求不出 阅读全文
posted @ 2023-10-16 14:07 Pengzt 阅读(4) 评论(0) 推荐(0) 编辑
摘要:CF733E 简单的。 手摸一下容易发现来回走了若干次之后,i 的左右都会变为同一个字符,因为它向上时遇到 D,会沿着上来的路再下去,然后遇到 U 再上去……它一直执行这样的操作的话,就只有上面的 D 和下面的 $\texttt{ 阅读全文
posted @ 2023-10-14 13:30 Pengzt 阅读(23) 评论(0) 推荐(0) 编辑
摘要:P6328 一眼题。 首先处理出所有点之间的距离是简单的,可以用 BFS 在 O(n(n+m)) 的时间内解决。 然后想一个相对暴力的做法,因为只要求至少一个二元组,那答案显然的等价于求出一个点集,使得每个点集中的点存在一个 i 能够在 yi 步内到达 xi阅读全文
posted @ 2023-10-13 20:43 Pengzt 阅读(12) 评论(0) 推荐(0) 编辑
摘要:CF1515F 简单题。 先猜个结论,当且仅当 i=1nai>(n1)x 时无解,这是好想的。因为每次合并减少一个点,总点权减少 x。 它为什么是对的呢?考虑反证法。令 u 为当前的点权最大的点。若不能合并,则有 au<xav,则 $\su 阅读全文
posted @ 2023-10-12 22:04 Pengzt 阅读(8) 评论(0) 推荐(0) 编辑
摘要:CF713D 有一个相当暴力的 O(nmt) 的做法是显然的,即对所有点求出以其为右下角的最大的全为 1 的正方形的边长,记为 fi,j。然后枚举询问的矩形中的点的 f 的值,和边界判一下后的 max 就是答案了。 但是这样不好直接维护,由于矩形边界, 阅读全文
posted @ 2023-10-10 20:31 Pengzt 阅读(4) 评论(0) 推荐(0) 编辑
摘要:ABC212F 暴力就是直接跳,显然不可过。 考虑对暴力进行优化,发现整个图是不会改变的,容易想到使用倍增。 显然是对边进行倍增的,令 fi,j 表示从第 i 条边开始,跳了 2j 条边后,到的是哪一条边,如果不存在,则设为 1。 然后就是很显然的倍增了, 阅读全文
posted @ 2023-10-07 13:32 Pengzt 阅读(16) 评论(0) 推荐(0) 编辑
摘要:Figures 题目链接。cnblogs。luogu。 Problem 有 N 个点,每个点有 di 个互不相同、可被区分的孔,每次可以选择两个不同点,连接两个未被连接过的孔,有多少种方案使得最后形成一棵树。合法方案中可以不把孔填满。 Sol 模拟赛题。 由于除根节点外每个点只有一 阅读全文
posted @ 2023-10-07 13:31 Pengzt 阅读(11) 评论(0) 推荐(0) 编辑
摘要:P8201 简单题。 题中求的是 disa,tdist,b=k 是否存在,显然不好直接维护,考虑转化。 令 dist=disa,tdist,b,\(val = \bigoplus\limits_{x\in \te 阅读全文
posted @ 2023-10-07 13:30 Pengzt 阅读(16) 评论(0) 推荐(0) 编辑
摘要:P7624 令 di 表示 1 号车站到 i 号车站的距离,len 表示环形地铁的总长度。 考虑题中给的条件: typei=0 时,若 ui<vi,即可表示为 \(d_{v_i} - d_{u_i} \ge L_i \iff d_{u_ 阅读全文
posted @ 2023-10-07 13:28 Pengzt 阅读(37) 评论(0) 推荐(0) 编辑
摘要:P9410 待补:根号分治做法 发现要支持区间加和连通块求和、合并,容易想到分块(虽然我一开始看错题了)。 完全不需要根号分治,直接分块即可。 考虑稍微暴力的分块。区间加的话,散块部分可以直接加到全局的 sum 数组中,毕竟不是区间求和,然后整块部分直接打标记,记录块内每个连通块的大小即可。 阅读全文
posted @ 2023-10-07 13:26 Pengzt 阅读(25) 评论(0) 推荐(0) 编辑
摘要:P9408 容易想到枚举最大值,令 fi,j 表示前 i 个数变为不降序列且第 i 个数为 j 的最小操作次数。 先考虑暴力转移:fi,j=fi1,k+chg(ai,j),其中 \(\text{chg}(i 阅读全文
posted @ 2023-10-07 13:23 Pengzt 阅读(6) 评论(0) 推荐(0) 编辑
摘要:P5313 看到值域比较,又支持离线,可以想到莫队和桶。 考虑先将桶按 b 分段,将每段分别进行按位与运算,做完第 i 段时用于运算的桶全都为 0,就可以直接得到答案。这显然可以用 bitset 优化。但是 STL 的 bitset 不支持分裂操作,所以需要手写。 当 \(b 阅读全文
posted @ 2023-10-07 13:20 Pengzt 阅读(12) 评论(0) 推荐(0) 编辑
摘要:CF1829G 先将整个塔变为一个直角三角形的模样。这时就可以很好的用数组表示了,这时发现答案就是一个倒着的等腰直角三角形的和(不考虑边界)。 考虑预处理。 令 ai 为点 i 所在的行数,fi 表示 i 号点的答案,gi 表示 i 和 它正上方 阅读全文
posted @ 2023-10-07 13:16 Pengzt 阅读(11) 评论(0) 推荐(0) 编辑
摘要:P8769 一道有意思的贪心题。 有一个很容易想到但是有误的贪心:从第 1 天开始,每次选择单价最低的购买,直到第 x 天。 但如果有一些单价较低且保质期极短的商品,和一些单价最低但保质期较长的商品,这个贪心就不会选择到单价较低的商品。 如果我们使时间逆流,就不会出现这样的问题,即从 阅读全文
posted @ 2023-10-07 13:15 Pengzt 阅读(81) 评论(0) 推荐(0) 编辑
摘要:UVA12716 一道挺有意思的位运算的题。 gcd(a,b)ab 本来是没有什么联系的,也不好直接转化。 那么就需要一个中间数进行转化,一般来说会是一个临界值,否则不好找答案。 先观察 gcd(a,b),ab,可得 \(\gcd( 阅读全文
posted @ 2023-10-07 13:13 Pengzt 阅读(29) 评论(0) 推荐(0) 编辑
摘要:P8816 提供一种不一样的做法。 首先将每个点以横坐标为第一关键字,纵坐标为第二关键字排序。 一维的 dp 肯定不够,因为 dp 既要存最多点数,又要保存自由点的点数。 赛时没看 k 的范围,于是开了一个结构体。 dpi.w 表示从当前起点开始且于 i 点结束的最多的点数 阅读全文
posted @ 2023-10-07 13:12 Pengzt 阅读(100) 评论(0) 推荐(0) 编辑
摘要:ABC281F 先将每一个 ai 二进制拆分。 因为每一位的 xor 运算是互不影响的,于是可以考虑每一位。 从高位到低位考虑,因为 ai<230,所以二进制状态下的 ai 的长度是 29 的。 假设在考虑 bit 阅读全文
posted @ 2023-10-07 13:09 Pengzt 阅读(19) 评论(0) 推荐(0) 编辑
摘要:CF429D 令 sumi 表示 j=1iaj。 则 g(i,j)=(sumjsumi)。 \(f(i, j) = (i - j)^2 + g(i, j)^2 = (i - j) ^ 2 + (sum_i - su 阅读全文
posted @ 2023-10-07 13:06 Pengzt 阅读(6) 评论(0) 推荐(0) 编辑
摘要:CF1139E 翻译中有一句话:校长将会从每个社团中各选出一个人。 就是一些人被分为一组,从每组中选一些人出来。 这就很容易想到通过二分图的匹配。 mex 运算有一个显而易见的贪心:枚举每个值能否被匹配,第一个找不到的值就是答案。 由于 mex 运算的值域 阅读全文
posted @ 2023-10-07 13:05 Pengzt 阅读(50) 评论(0) 推荐(0) 编辑
摘要:CF633G 简单题。 先看到子树加和子树质数个数和,果断转换为 dfs 序进行处理。 既然有区间求和,考虑线段树。 若对于每一个节点维护一个 cnt 数组,用二进制数 x 来表示,即当 cnti=1 时第 i 位为 1。设当前节点为 u,左右子 阅读全文
posted @ 2023-10-05 22:41 Pengzt 阅读(7) 评论(0) 推荐(0) 编辑
摘要:ABC298Ex 简单题。 因为有 min 不好做,容易想到讨论 d(i,L)d(i,R) 的大小。 令 p=LCA(L,R),\(dep_L > dep_R, dist = dep_L + dep_R - 2\times dep_p\ 阅读全文
posted @ 2023-10-05 22:39 Pengzt 阅读(18) 评论(0) 推荐(0) 编辑
摘要:CF1805E 待补:有另解 看到维护树上问题,可以想到线段树合并。 但直接维护显然不行,要一点技巧。 发现 val 的出现次数 cntval 如果 3,那么一定是一个候选项,若 cntval=1,那么一定不能作为候选项。 于是可以用权值线段树 阅读全文
posted @ 2023-10-05 22:34 Pengzt 阅读(11) 评论(0) 推荐(0) 编辑
摘要:ABC273F 一道比较板的区间 dp。 先对坐标离散化,令离散化数组为 v。 令 fi,j 表示能走到区间 [vi,vj] 的最短路程,显然 f 数组初始为 inf。 但发现这样无法转移,可以再增加一维 \(k \in \{0 阅读全文
posted @ 2023-10-05 22:32 Pengzt 阅读(10) 评论(0) 推荐(0) 编辑
摘要:P3422 一道有点意思的题。 看到是一个环,先破环为链,即 an+i=ai,bn+i=bi,此时就只需要跳到 x+n 而无需判环了。 如果顺时针走: 令 sumi=j=1iajbj,当能从 x 跳到 阅读全文
posted @ 2023-10-05 22:30 Pengzt 阅读(5) 评论(0) 推荐(0) 编辑
摘要:P7795 典。 显然 O(n2) 的时间复杂度无法通过。 使子段平均值最大,考虑二分。 可以二分平均值 mid,然后判断是否有满足条件的子段. 时间复杂度:\(\mathcal{O}(\dfrac{n\log\max\{a_i\}}{\text{eps}} 阅读全文
posted @ 2023-10-05 22:29 Pengzt 阅读(33) 评论(0) 推荐(1) 编辑
摘要:CF1151E 发现每一个 f(l,r) 中的连通块总是一条链(一棵树)。 那么此时连通块的数量就等于点的数量减去边的数量。 先考虑点的总数,一个价值为 ai 的点一定是在 lairai 的 \(f(l, r)\ 阅读全文
posted @ 2023-10-05 22:27 Pengzt 阅读(5) 评论(0) 推荐(0) 编辑
摘要:P4133 双倍经验 发现斐波那契数列增长极快,不到 100 项就超过了 1018,搜索树也极为稀疏,可以考虑搜索。 爆搜肯定会超时,考虑优化: 可行性剪枝。 记忆化,去除重复的计算。 改变搜索的顺序,因为先考虑小元素的话,会有较多的无用的搜索,且小元素较灵活,更容易凑到 \( 阅读全文
posted @ 2023-10-05 20:41 Pengzt 阅读(21) 评论(0) 推荐(0) 编辑
摘要:P8565 发现数列 a 增长的特别快,项数最多时是 a1=a2==a100,但这样也只会有一百多项就可以超过 1018。 可以考虑搜索,因为搜索树会比较稀疏,函数 dfs(val, cur) 表示凑出 x 还需要 \(val\ 阅读全文
posted @ 2023-10-05 20:40 Pengzt 阅读(28) 评论(0) 推荐(0) 编辑
摘要:ARC058D 简单组合计数。 可以先把矩形旋转一下,变为求从 (1,1) 走到 (n,m),只能向上或向右移动。且不经过左上角的 A×B 的禁区的方案数,对 109+7 取模。 假如没有 A×B 的禁区的话,那么方案数为 \(C 阅读全文
posted @ 2023-10-05 20:40 Pengzt 阅读(17) 评论(0) 推荐(0) 编辑
摘要:ABC284F 这题的正解是 Z 函数。 如果 str=T+T 的话,若可以找到连续的分别长为 n 的两段,且这两段可通过 1 次翻转变为相同的字符串,那么便一定有解,否则无解。 暴力判断是 O(n) 的,时间复杂度直接上天。 可以 阅读全文
posted @ 2023-10-05 20:38 Pengzt 阅读(62) 评论(0) 推荐(0) 编辑
摘要:ABC239H 简单题。 令 fi 表示乘到 i 的期望。 容易得到 fi=j=1nfijn。 将 fi 移到同一边,去掉系数,有 \(f_i=\dfr 阅读全文
posted @ 2023-10-05 20:36 Pengzt 阅读(37) 评论(0) 推荐(0) 编辑
摘要:ARC163D 发现这个竞赛图一定能被分为两个集合 AB。满足 uA,vB,均有 uvE。答案就是划分这两个集合的方案数。 证明: 首先,竞赛图缩完点后一定是一条链,对强连通分量进行标号,满足编号小的强连通分量指向编号 阅读全文
posted @ 2023-10-05 20:35 Pengzt 阅读(12) 评论(0) 推荐(0) 编辑
摘要:CF1851G 一眼题。 发现如果从 ijk,则要满足 hjhiehjhi+hkhje,也就是 hkhie。然后就发现能不能到那个点与路径上的其它点没关系,只需满足不大于 hi+e 即可。这时候问题就变为了只 阅读全文
posted @ 2023-10-04 10:31 Pengzt 阅读(8) 评论(0) 推荐(0) 编辑
摘要:CF1863F O(n3) 的区间 dp 是好想的,不过是从大区间转移到小区间,考虑怎么进行优化。 状态是难以进行优化的了,从转移入手。 令 si=j=1iaj。 对于两个区间 [l,p)[p,r]。令 $x=s_{p 阅读全文
posted @ 2023-10-04 09:08 Pengzt 阅读(5) 评论(0) 推荐(0) 编辑
摘要:P8701 显然可以直接将维护的值变为区间前 8 大,为实现的简洁,可使用 vector,使用归并合并信息达到 8nlogn。由于偷懒,归并部分我直接写的 sort,加上 vector 的大常数,加 O2 后即可通过。 时间复杂度:$\mathcal{O}(8n\lo 阅读全文
posted @ 2023-10-02 23:12 Pengzt 阅读(16) 评论(0) 推荐(0) 编辑
摘要:P9688 由于要求单调,肯定满足对于所有选择的颜色 (x,y) 使得其最左边出现的位置 L 和最右边出现的位置 R,满足 [Lx,Rx][Ly,Ry]=。不然的话肯定不会单调。 直接枚举出现过的颜色,无交的按 L 从小到大连边,且要满 阅读全文
posted @ 2023-10-02 22:55 Pengzt 阅读(22) 评论(0) 推荐(0) 编辑
摘要:P9689 难评。 可以直接枚举树的高度,看有没有砍掉 m 个点。 当 k 小于树的深度时,显然节点个数为 2k1,此时编号和是容易的。 但是当 k 等于树的深度时,编号和不能直接求出,因为最后一层的编号不是连续的。 令 x=edst+1。子树大小是容易通过记忆化得到的。考 阅读全文
posted @ 2023-10-02 22:45 Pengzt 阅读(8) 评论(0) 推荐(0) 编辑

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