上一页 1 2 3 4 5 6 7 ··· 14 下一页
摘要: 发现选择的区间不包含且不相交,于是区间的形式为选一段空一段。 考虑到 r−lr-lr−l 即为每个区间 [i,i+1][i,i+1][i,i+1] 的贡献。 于是考虑 [i,i+1][i,i+1][i,i+1] 什么时候不选,发现当左段的最大值小于右端的最大值时,[i,i+1][i,i+1][i,i 阅读全文
posted @ 2023-05-18 13:28 蒟蒻orz 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 若 m≢0(modk)m \not\equiv 0 \pmod km≡0(modk),无解。 考虑将操作二个数限制为 <k< k<k,否则可转化为几次操作一和 ≤k\le k≤k 次操作二,那么一个操作集合唯一对应一种最终序列,于是对操作集合进行计数即可。 记序列 b1∼n−k+1b_{1\si 阅读全文
posted @ 2023-05-17 13:33 蒟蒻orz 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 由 D1 的结论,将最后 nnn 个操作倒序加入原数组,然后每个数用偶数次操作,每两次操作 −1-1−1,最后可能剩下一个操作,加到最大数上。 感性理解,由于要使得最后的操作是 +++,那么前面一定是 +−+−+−+-+-+-+−+−+− 排列的,那么每次 −1-1−1 最优。 考虑二分答案。 考虑 阅读全文
posted @ 2023-05-16 14:06 蒟蒻orz 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 建立原图的最小生成树,那么两点路径最大值的最小值即为 MST 上两点路径最大边权。 设修改边 (x,y)(x,y)(x,y),原权值为 www。 首先查询 sss 到 ttt 的最小瓶颈是否是 www,如果不是,显然没有影响。 否则问题转化为:仅考虑边权 ≤w\leq w≤w 的边,(x,y)(x, 阅读全文
posted @ 2023-05-16 12:54 蒟蒻orz 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 写来记录一下这种套路。 区间 max 可以单调栈 +++ 扫描线转化成区间加。 询问区间的子区间权值之和,应用到区间历史和上。 此时区间上 Ai=max⁡j=iraj,Bi=max⁡j=irbjA_i=\max_{j=i}^{r} a_j, B_i=\max_{j=i}^{r} b_jAi​=max 阅读全文
posted @ 2023-03-16 17:22 蒟蒻orz 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 后悔开题顺序为什么是 231 ???? 发现对于一个点生成的子楼梯边界就是它右边和下面的方块个数之和 +1+1+1。 根据小学表面积简易算法, 考虑维护阶梯的右下分界线,竖线为 111,横线为 000。 问题变成找到以 111 开头,以 000 结尾长度为 q+1q+1q+1 的串。 思考 qqq 阅读全文
posted @ 2023-01-18 20:38 蒟蒻orz 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 22.12.03 NOI2021模拟测试赛(一) link 22.12.03 CSP2022 J2 练习十四 link 22.12.05 NOI2021模拟测试赛(二) link 22.12.07 NOI2023模拟测试赛(一) link 22.12.09 NOI2023模拟测试赛(二) link 阅读全文
posted @ 2023-01-06 16:29 蒟蒻orz 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 显然体积不变,使热量最大。 单调队列维护热量段,满足单调递增。 每次放水就取出队头。 加水就维护单调队列,融合一下。 时间复杂度 O(n)\mathcal O(n)O(n)。 #include<bits/stdc++.h> using namespace std; #define int long 阅读全文
posted @ 2022-12-01 09:24 蒟蒻orz 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 性质: 括号都用在减号后。 减号后加括号除了这个减号和下一个减号之间的数减去,后面所有数都可加上绝对值,显然这个括号最优是右括号放在最后。 故枚举加括号的位置,前缀和优化即可。 时间复杂度 O(n)\mathcal O(n)O(n)。 #include<bits/stdc++.h> using na 阅读全文
posted @ 2022-12-01 09:21 蒟蒻orz 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 用 dfs 序把树拍成区间,转化为区间问题。 建线段树,维护区间 bitset 表示一个取模后的数是否在区间内出现过。 答案即为区间的 bitset &\&& 质数集的 bitset 得到的 bitset 中 111 的个数。 时间复杂度 O(nmlog⁡nω)\mathcal O(\frac{nm 阅读全文
posted @ 2022-12-01 09:17 蒟蒻orz 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 枚举最大值和最小值的 popcount,扫描线枚举右端点 rrr,记 flf_lfl​ 表示 [l,r][l,r][l,r] 中最大值是否等于枚举的 popcount +++ [l,r][l,r][l,r] 中最小值是否为枚举的 popcount,单调栈维护 flf_lfl​ 的变化,那么答案即为 阅读全文
posted @ 2022-12-01 09:14 蒟蒻orz 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 动态链上第 kkk 大。考虑树状数组 +++ 主席树。 树状数组上每一个节点都是一棵主席树。 对于修改,树状数组上区间修改即可,O(log⁡2n)\mathcal O(\log^2 n)O(log2n)。 对于查询,差分,主席树求第 kkk 大,O(log⁡2n)\mathcal O(\log^2 阅读全文
posted @ 2022-12-01 09:10 蒟蒻orz 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 根据 φ\varphiφ 的规律,设 n=∏ipiain=\prod\limits_{i}{p_i^{a_i}}n=i∏​piai​​,则有 φ(n)=n×∏ipi−1pi\varphi(n)=n\times\prod\limits_{i}{\frac{p_i-1}{p_i}}φ(n)=n×i∏​p 阅读全文
posted @ 2022-12-01 08:58 蒟蒻orz 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 可以发现图只有一种情况:即可以找到一点与三个联通块相连,使得答案最小。 那么对于每个点,bfs 计算它与三个联通块的距离之和,取最小值即可。 时间复杂度 O(nmα)\mathcal O(nm \alpha)O(nmα)。 阅读全文
posted @ 2022-12-01 08:54 蒟蒻orz 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 直接分治。 若 max⁡(a1,a2)<103\max(a1,a2) < 10^3max(a1,a2)<103,枚举 x∈[l,l+a1×a2]x \in [l,l+a1\times a2]x∈[l,l+a1×a2],对于符合条件的,答案累加 ⌊r−xa1×a2⌋+1\lfloor\frac{r-x 阅读全文
posted @ 2022-12-01 08:51 蒟蒻orz 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 记 fi,j,kf_{i,j,k}fi,j,k​ 表示前 iii 个点,第 iii 个点染为 jjj,分成 kkk 段的最小花费。 转移方程: 第 iii 个点已被染色:fi,coli,k=min⁡(fi,coli,k,fi−1,lst,k−[lst≠coli])f_{i,col_i,k}=\min 阅读全文
posted @ 2022-12-01 08:44 蒟蒻orz 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 数位 dp 板子。 先差分,再记 fi,j,kf_{i,j,k}fi,j,k​ 表示在 iii 进制下有 jjj 位,并且每个数字出现次数的奇偶性是 kkk 的数的个数。 转移方程:fi,j,k=∑m=0i−1fi,j−1,k⊕2mf_{i,j,k}=\sum\limits_{m=0}^{i - 1 阅读全文
posted @ 2022-12-01 08:43 蒟蒻orz 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 考虑到所有合法的分配方案都满足一个简单的性质:2×p+q≡1(mod3)2 \times p+q \equiv 1 \pmod 32×p+q≡1(mod3)(其中 ppp 为 - 的个数,qqq 为 + 的个数)和至少存在一对相邻且符号相同的数。数学归纳易证。 由此,设 fi,j,0/1,0/1f_ 阅读全文
posted @ 2022-12-01 08:42 蒟蒻orz 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 考虑根号做法,对编号分块。 记 paipa_ipai​ 表示点 iii 离开块的第一个祖先,faifa_ifai​ 表示父亲。 对于询问,不断像树剖那样跳父亲即可,单次 O(n)\mathcal O(\sqrt n)O(n​)。 对于修改,散块暴力,整块也暴力。 因为 fai<ifa_i<ifai​ 阅读全文
posted @ 2022-12-01 08:39 蒟蒻orz 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 注意到进行完前 iii 次操作之后,si+1s_{i+1}si+1​ 要么在 iii,要么在 i+1i+1i+1,取决于上一次 sis_isi​ 是否在 iii 位置且上一次执行的是否是 R 操作。 因此设 dpi,0/1dp_{i,0/1}dpi,0/1​ 表示进行完前 iii 次操作后,si+1 阅读全文
posted @ 2022-12-01 08:38 蒟蒻orz 阅读(1) 评论(0) 推荐(0) 编辑
摘要: CF1592F1 发现操作 222 和操作 333 的等效于执行 222 次操作 111,更优。 记 ax,ya_{x,y}ax,y​ 表示 (x,y)(x,y)(x,y) 是否为黑色,再记 bx,y=ax,y⊕ax,y+1⊕ax+1,y⊕ax+1,y+1b_{x,y}=a_{x,y}\oplus 阅读全文
posted @ 2022-12-01 08:35 蒟蒻orz 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 设 fi,kf_{i,k}fi,k​ 表示前 iii 个数分成 kkk 段的最小值。 转移方程: fi,k=min⁡j=1i{fj−1,k−1+c(j,i)}f_{i,k}=\min_{j=1}^{i}\{f_{j-1,k-1}+c(j,i)\}fi,k​=j=1mini​{fj−1,k−1​+c( 阅读全文
posted @ 2022-11-21 15:10 蒟蒻orz 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 分块。 边权非负,若一个点所处位置已被遍历过,那么这个点在块内无意义,故每个块可均摊 O(n)\mathcal O(n)O(n),总 O(nn)\mathcal O(n\sqrt n)O(nn​)。 发现散块修改会将原先无意义的点标为有意义的,考虑对块重构即可,单次根号,涉及到求点在树上的 kkk 阅读全文
posted @ 2022-09-29 14:02 蒟蒻orz 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 好题分享1 A. 【ynoi2009】rla1rmdq 做过。 分块。 边权非负,若一个点所处位置已被遍历过,那么这个点在块内无意义,故每个块可均摊 O(n)\mathcal O(n)O(n),总 O(nn)\mathcal O(n\sqrt n)O(nn​)。 发现散块修改会将原先无意义的点标为有 阅读全文
posted @ 2022-09-29 07:21 蒟蒻orz 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 9/28 不知官答如何,昨天查分查了一天。 S90可过吗??? J96.5可过吗??? 做lan题。 10/1 国庆乱做 阅读全文
posted @ 2022-09-28 13:06 蒟蒻orz 阅读(3) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 14 下一页
点击右上角即可分享
微信分享提示