12 2022 档案

摘要:题目链接 A. Koxia and Whiteboards 注意每一步替换操作都是强制的,而不是可选的。所以就用一个multiset维护所有的数,每次选一个最小的替换掉即可。 时间复杂度O(nlogn)。 点击查看代码 #include <bits/stdc++.h> #define rep(i 阅读全文
posted @ 2022-12-31 14:59 LegendStane 阅读(229) 评论(0) 推荐(0) 编辑
摘要:题目链接 首先注意到我们对这个环的扫描是一轮一轮进行的,每轮都会从左到右对每个没被删除的元素以p的概率删除。如果我们能对每个t(t[0,],t)i求出c号点在第t+1轮被删掉,且是第i个被删除的元素,那么就能求出答案了。不幸的是我们不能枚举所有的t。但是不管怎么样 阅读全文
posted @ 2022-12-30 22:26 LegendStane 阅读(64) 评论(0) 推荐(0) 编辑
摘要:题目链接 这题的方法口糊一下没有很难,没达到3500的水准。但是写起来才发现是真的恶心(主要是容易写错),没写过这么累的题,可能难度就体现在这里吧。 计数的时候是要分类讨论的,但是核心算法都一样:启发式合并,线段树合并。把m2对路径分成以下三类,分别统计合法的: 两条路径的LCA不同(路径的L 阅读全文
posted @ 2022-12-29 21:10 LegendStane 阅读(58) 评论(0) 推荐(0) 编辑
摘要:题目链接 首先很容易想到的是对反串求SA和LCP,然后询问就是求起点在某个区间内的所有后缀两两LCP的最大值,可以用莫队解决,时间复杂度O(nnlogn),应该是过不了的。 考虑对原串求SAM,两个前缀的最长公共后缀(用LCS表示)其实就是它们在parent tree上对应节点的L 阅读全文
posted @ 2022-12-28 14:40 LegendStane 阅读(47) 评论(0) 推荐(0) 编辑
摘要:题目链接 计数技巧大杂烩,好题 先来定义一下"间隔",间隔指的是两个相邻的数之间的大小关系,有两种状态,上坡和下坡,分别指的是pi<pi+1pi>pi+1。这题要求的就是长度为n的间隔序列相同的排列对(a,b)的个数。 先考虑这样一个问题:在间隔序列确定的情况下有多少不 阅读全文
posted @ 2022-12-27 16:55 LegendStane 阅读(190) 评论(0) 推荐(0) 编辑
摘要:题目链接 令p=nrm,则我们其实是要对所有0i29j=0p(mj+r2imod 2)。右边那个东西如果没有那个mod 2,其实就是类欧几里得算 阅读全文
posted @ 2022-12-26 21:57 LegendStane 阅读(60) 评论(0) 推荐(0) 编辑
摘要:题目链接 挺有意思的数据结构题,题面看着像个板子,其实还是有不少学问的。 平面上一堆矩形的题目常见套路就是对x轴扫描线,y轴线段树维护,这题也不例外。我们先对坐标离散化。题目中输入的是坐标系中的顶点的坐标,为了方便维护,我们需要转换成"格子"的坐标。注意,是先离散化再转换,如果先转换再离散化 阅读全文
posted @ 2022-12-25 21:54 LegendStane 阅读(29) 评论(0) 推荐(0) 编辑
摘要:题目链接 思路 首先看到这种求xk形式的,直接无脑转下降幂:xk=i=1kS2(k,i)xi_,其中S2表示第二类斯特林数,xi_表示x(x1)(xi+1)。这是一个 阅读全文
posted @ 2022-12-24 11:21 LegendStane 阅读(29) 评论(0) 推荐(0) 编辑
摘要:题目链接 首先明确概念: 排列。指的就是一个把数组a重排得到的序列,两个排列相等当且仅当它们对应位全都相等 环形排列。指的是把数组a重排得到的序列首尾相接得到的环形数组,两个环形排列相等当且仅当它们通过位移能够变得对应位全部相等 这题其实是要对所有不同的环形排列,求其中连续相同的数构成的连通块个数的 阅读全文
posted @ 2022-12-23 14:25 LegendStane 阅读(32) 评论(0) 推荐(0) 编辑
摘要:题目链接 假设现在起点已经确定,我们观察从这个起点开始能走的最长路径长什么样。把这条最长路径中所有的非平地路径拿出来,它们肯定连成一线,因为不允许上坡;而一条路径重复走的情况只可能是在几个连续的平地那里来回走。所以路径的形状是一条主链(链上的边可以是下坡或者平地),上面挂着一些平地组成的环。由于图是 阅读全文
posted @ 2022-12-22 22:08 LegendStane 阅读(30) 评论(0) 推荐(0) 编辑
摘要:题目链接 令ci表示第i种颜色的珍珠的数量,显然我们最多能装的瓶数是ci2。也就是说,ci为奇数的i的数量不能太多,这个数量要在某个范围内才行,且这个范围是很好求的。考虑对每个n求出fn表示刚好有n个ci为奇 阅读全文
posted @ 2022-12-21 20:55 LegendStane 阅读(48) 评论(0) 推荐(0) 编辑
摘要:题目链接 先观察满足题目中给出的限制的图有什么特点。先看Cu,它指的是所有与u在同一个简单环内的节点。发现一个点v在Cu中,当且仅当u,v点双连通。关于点双连通的判断。首先必要性是显然的,不点双连通显然不行。至于充分性,可以把u作为根跑出dfs树,根据上面点双连通的判断方法, 阅读全文
posted @ 2022-12-20 21:40 LegendStane 阅读(47) 评论(0) 推荐(0) 编辑
摘要:提交链接 其实就是个大模拟。首先对输入的串进行处理,把所有的命令分开,并把连续的停顿合并。为了方便,定义一个时间单位为全音符的1128,这样所有命令的持续时间都是整数个时间单位。然后就可以dp了,dpi,j,k表示处理到第i个命令,当前八度为j,当前默认时长为k的最优解 阅读全文
posted @ 2022-12-19 14:42 LegendStane 阅读(62) 评论(0) 推荐(0) 编辑
摘要:既然是YNOI那肯定是要分块的。先考虑树是一条链的情况,可以直接回滚莫队,对n个节点组成的序列分块。在回滚莫队的过程中,当前维护的区间一共会扩展O(nn)次,每次都是合并了恰好2个连通块。可以用线段树合并对每个连通块维护其中颜色的奇偶性。注意到每次合并,都有其中一个连通块的大小是1, 阅读全文
posted @ 2022-12-19 14:38 LegendStane 阅读(66) 评论(0) 推荐(0) 编辑
摘要:A. Add Plus Minus Sign 如果有偶数个1,显然可以通过加减各一半的方式达到和为0;否则可以达到和为1。需要注意如果序列的第一个数是1,则它的前面只能填加号。 时间复杂度O(n)。 点击查看代码 #include <bits/stdc++.h> #define rep(i,n) 阅读全文
posted @ 2022-12-18 19:19 LegendStane 阅读(263) 评论(0) 推荐(0) 编辑
摘要:已知两个数组a,b,求一个数组c,满足ci=j+ki(MOD K)ajbk(MOD M)。这里我们把这个东西称为下标模意义下的多项式乘法。那么这个东西怎么做呢? **先说结论:**如果MOD M意义下存在K次单位根,那么把平时用NTT做多项式乘法时的 阅读全文
posted @ 2022-12-18 11:51 LegendStane 阅读(133) 评论(1) 推荐(1) 编辑
摘要:题目链接 神奇数论题。 做这题需要知道两个结论: 对于满足fi+2=afi+1+bfi,也就是形式类似斐波那契数列的序列,有gcd(fi,fj)=fgcd(i,j)(据说是这样,我不确定正确性,但至少这题中a=2,b=1的情况是对的) 对于 阅读全文
posted @ 2022-12-02 15:00 LegendStane 阅读(39) 评论(0) 推荐(0) 编辑

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