Live2D Demo
摘要: 题目链接 先观察满足题目中给出的限制的图有什么特点。先看$C_u$,它指的是所有与$u$在同一个简单环内的节点。发现一个点v在$C_u$中,当且仅当$u,v$点双连通。关于点双连通的判断。首先必要性是显然的,不点双连通显然不行。至于充分性,可以把$u$作为根跑出dfs树,根据上面点双连通的判断方法, 阅读全文
posted @ 2022-12-20 21:40 LegendStane 阅读(71) 评论(0) 推荐(0)
摘要: 提交链接 其实就是个大模拟。首先对输入的串进行处理,把所有的命令分开,并把连续的停顿合并。为了方便,定义一个时间单位为全音符的$\frac 1{128}$,这样所有命令的持续时间都是整数个时间单位。然后就可以dp了,$dp_{i,j,k}$表示处理到第i个命令,当前八度为j,当前默认时长为k的最优解 阅读全文
posted @ 2022-12-19 14:42 LegendStane 阅读(84) 评论(0) 推荐(0)
摘要: 既然是YNOI那肯定是要分块的。先考虑树是一条链的情况,可以直接回滚莫队,对n个节点组成的序列分块。在回滚莫队的过程中,当前维护的区间一共会扩展$O(n\sqrt n)$次,每次都是合并了恰好2个连通块。可以用线段树合并对每个连通块维护其中颜色的奇偶性。注意到每次合并,都有其中一个连通块的大小是1, 阅读全文
posted @ 2022-12-19 14:38 LegendStane 阅读(161) 评论(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 阅读(318) 评论(0) 推荐(0)
摘要: 已知两个数组$a,b$,求一个数组$c$,满足$c_i=\sum_{j+k\equiv i(MOD\ K)}a_jb_k(MOD\ M)$。这里我们把这个东西称为下标模意义下的多项式乘法。那么这个东西怎么做呢? **先说结论:**如果MOD M意义下存在K次单位根,那么把平时用NTT做多项式乘法时的 阅读全文
posted @ 2022-12-18 11:51 LegendStane 阅读(183) 评论(1) 推荐(1)
摘要: 题目链接 神奇数论题。 做这题需要知道两个结论: 对于满足$f_{i+2}=a\cdot f_{i+1}+b\cdot f_{i}$,也就是形式类似斐波那契数列的序列,有$gcd(f_i,f_j)=f_{gcd(i,j)}$(据说是这样,我不确定正确性,但至少这题中a=2,b=1的情况是对的) 对于 阅读全文
posted @ 2022-12-02 15:00 LegendStane 阅读(55) 评论(0) 推荐(0)
摘要: 点我看题 A. Two Permutations 首先n=a=b的情况是合法的。其余的情况,如果$a+b \ge n$,显然矛盾,因为这样前缀和后缀相等的长度应该都是n才对。$a+b=n-1$也不行,因为题目中要求的是排列,这种情况下a和b也应该都是n才对。其它情况都是合法的。 时间复杂度$O(1) 阅读全文
posted @ 2022-11-22 18:20 LegendStane 阅读(205) 评论(0) 推荐(0)
摘要: 题目链接 对于任意一个multiset,我们都把它的元素从大到小排序来观察。发现一个multiset合法有个必要条件:对于每个i,multiset中最大的i个元素之和不能超过$lim_i$,如果令$c_i$表示输入的数中i出现的次数,则$lim_i=\sum_{j=1}^n min(i,c_j)$。 阅读全文
posted @ 2022-11-20 19:42 LegendStane 阅读(55) 评论(0) 推荐(0)
摘要: 题目链接 这题两种不同做法,普通的$O(n^2)$和奇怪的$O(nlogn)$。如果用$O(nlogn)$的话可以加强到1e6。 做法1 时间复杂度$O(n^2)$ 先把最终的排列随便画一个出来观察一下: 图中越高的数值越大 发现一个"峰顶"的数对最终花费的贡献是$2x_i+a_i+c_i$,一个" 阅读全文
posted @ 2022-11-19 21:28 LegendStane 阅读(56) 评论(0) 推荐(0)
摘要: 题目链接 很恶心的分类讨论题,恶心程度不亚于初学者做Tic tac toe。据说djq交了很多次才过 先观察单独的一个询问,什么样的字符串a才能变换成字符串b。正向做似乎有点困难,我们考虑反向,什么样的b才能变换成a。为了将b变换成a,我们能做的操作是:把BC变成A,把AB变成C,把AC变成B,以及 阅读全文
posted @ 2022-11-18 16:50 LegendStane 阅读(109) 评论(1) 推荐(0)
摘要: 题目链接 题意简述 有一个n个点的有向图,每个点有两条出边,称为A边和B边。称一种构图是好的,当且仅当对于所有i,从第i个点出发,先连走x次A边,走1次B边,再连走y次A边,走1次B边,再走z次A边,最后回到了i。对合法的构图计数,模1e9+7。两个构图不同当且仅当某个点的A边或B边的终点不同。 $ 阅读全文
posted @ 2022-11-17 16:32 LegendStane 阅读(80) 评论(1) 推荐(0)
摘要: 题目链接 其实"序列中1的数量有限"是一个非常重要的条件。这意味着我们可以找到序列中的第一个1和最后一个1。 考虑这样一件事情:初始时我们把一个长度为$2^{2w+1}$的"滑块"放在刚好在第一个1前面的位置(这时滑块的内部全是0),然后每次把滑块向右移动一格(也就是删掉滑块的第一个字符,在末尾再加 阅读全文
posted @ 2022-11-17 15:09 LegendStane 阅读(130) 评论(3) 推荐(1)
摘要: 没有摘要 阅读全文
posted @ 2022-11-15 19:47 LegendStane 阅读(156) 评论(1) 推荐(0)
摘要: 其实我们要干的事情是给每种货币分配一个值$value_i$,满足对于任意i、j,$m_{i,j} \le \frac{value_j}{value_i} \le M_{i,j}$。整理一下这个式子,发现可以转化成:对于每对$i,j(i<j)$,都有两个值x和y,要求$value$必须满足$value 阅读全文
posted @ 2022-11-15 19:43 LegendStane 阅读(80) 评论(1) 推荐(0)
摘要: 题目链接 前两天做过一个题意类似但做法不类似的题 在这里 首先做这道题需要一个结论:(一元)同余方程组有解的充要条件是方程组中的所有方程两两联立有解。证明 两个同余方程联立有解就用裴蜀定理判一下就行了。不用这个结论的话需要用CRT和一些数据结构解决,但是非常麻烦。 依次枚举每种数字i,尝试算出最长的 阅读全文
posted @ 2022-11-14 11:22 LegendStane 阅读(285) 评论(1) 推荐(0)