11 2022 档案
摘要:点我看题 A. Two Permutations 首先n=a=b的情况是合法的。其余的情况,如果,显然矛盾,因为这样前缀和后缀相等的长度应该都是n才对。也不行,因为题目中要求的是排列,这种情况下a和b也应该都是n才对。其它情况都是合法的。 时间复杂度$O(1)
阅读全文
摘要:题目链接 对于任意一个multiset,我们都把它的元素从大到小排序来观察。发现一个multiset合法有个必要条件:对于每个i,multiset中最大的i个元素之和不能超过,如果令表示输入的数中i出现的次数,则。
阅读全文
摘要:题目链接 这题两种不同做法,普通的和奇怪的。如果用的话可以加强到1e6。 做法1 时间复杂度 先把最终的排列随便画一个出来观察一下: 图中越高的数值越大 发现一个"峰顶"的数对最终花费的贡献是,一个"
阅读全文
摘要:题目链接 很恶心的分类讨论题,恶心程度不亚于初学者做Tic tac toe。据说djq交了很多次才过 先观察单独的一个询问,什么样的字符串a才能变换成字符串b。正向做似乎有点困难,我们考虑反向,什么样的b才能变换成a。为了将b变换成a,我们能做的操作是:把BC变成A,把AB变成C,把AC变成B,以及
阅读全文
摘要:题目链接 题意简述 有一个n个点的有向图,每个点有两条出边,称为A边和B边。称一种构图是好的,当且仅当对于所有i,从第i个点出发,先连走x次A边,走1次B边,再连走y次A边,走1次B边,再走z次A边,最后回到了i。对合法的构图计数,模1e9+7。两个构图不同当且仅当某个点的A边或B边的终点不同。 $
阅读全文
摘要:题目链接 其实"序列中1的数量有限"是一个非常重要的条件。这意味着我们可以找到序列中的第一个1和最后一个1。 考虑这样一件事情:初始时我们把一个长度为的"滑块"放在刚好在第一个1前面的位置(这时滑块的内部全是0),然后每次把滑块向右移动一格(也就是删掉滑块的第一个字符,在末尾再加
阅读全文
摘要:题目链接 前两天做过一个题意类似但做法不类似的题 在这里 首先做这道题需要一个结论:(一元)同余方程组有解的充要条件是方程组中的所有方程两两联立有解。证明 两个同余方程联立有解就用裴蜀定理判一下就行了。不用这个结论的话需要用CRT和一些数据结构解决,但是非常麻烦。 依次枚举每种数字i,尝试算出最长的
阅读全文
摘要:题目链接 我们要干的事情其实是对于输入矩阵中的每个位置,求出从它开始至少走几步形成的序列能跟所有位置走同样步数形成的序列不同。注意到每个位置最多走步就能达到目标了,所以这时就有了一个的暴搜(把trie树搜出来),如果写得好是可以卡过去的! 但是还有更优的做法。**注意到
阅读全文
摘要:求最小生成树有两种广为人知的方法,Kruskal和Prim。但是在某些特殊的情况下,比如边特别多但是边权满足一些特殊的性质,这时需要用到Boruvka算法。 Boruvka的算法流程如下:一开始没加任何边的情况下,每个点都是一个独立的连通块。每一轮,对每个连通块找出连接它和另一个连通块的权值最小的边
阅读全文
摘要:CSAcademy 是一个比较小众的罗马尼亚OJ,UI好看功能多样,但是需要fq才能注册。访问是不用fq的 CSA的题目是有英文官方题解的,很不错 常用工具:画图 找不同 题目链接 前段时间刚做过类似的分层dp题,这次又忘了,深刻反思.jpg 题目要求构造一棵n个叶子的二叉树,发现一定存在一个最优解
阅读全文
摘要:先明确是一个怪物的血量,是攻击的代价。发现如果我们想攻击一个怪物,不如找出一个极大的包含它的区间,满足这个区间内所有怪物的攻击代价都不大于它本身的代价,因为多攻击一点肯定是好的,反正不多花钱。这启发我们把所有的怪物依照的值建一棵笛卡尔树,其中最大的怪物为根。容
阅读全文
摘要:题目链接 不错的点分树题。我之前只听说过有点分树这个东西,没做过几个题。 先考虑图是一棵树的情况怎么做。我们对这棵树建立点分树。**所谓点分树,就是先对树进行重心分治(点分治),然后把相邻两层的重心连边形成一棵新的树。**容易发现新的树的高度是的。看一开始重心分治的过程,在重心分治
阅读全文
摘要:求点赞 T1. 假期计划 (holiday) 这个题作为t1可一点都不简单啊。 先用bfs 求出任意两点之间的最短路,这样就可以判断哪些点对可以排在一起。注意到第1、4个景点是对称的,第2、3个景点是对称的。我们对于每个景点求出当它作为第2个景点时,第1个景点的可能集合,令第i个点的这
阅读全文