随笔分类 -  小神奇

杂项,包涵一些高科技或者不太常用的算法
摘要:题目链接 先不考虑修改操作。 直接模拟题目意思,可以发现最后留下的一定是最小的数字(因为相同的数每次会保留第一个)。我当时是顺着这个思路做的题目,现在想想反过来想好像会让问题变得更简单,即认为每次保留最后一个相同的数字。 那么现在每次留下的就是最后一个数字,显然每次操作会让这个数字加一,只需要考虑一 阅读全文
posted @ 2023-09-24 16:27 With_penguin 阅读(46) 评论(1) 推荐(0)
摘要:原题链接 先不加证明给出一个结论:被操作的点仅可能是初始序列中 \(p[i] = i\) 的点。 我们新建一个数组 \(b[i] = (p[i] == i)\)。显然对于相邻且 \(b\) 值相等的两个位置无法进行操作,这样我们就把原序列分成了若干个 \(b\) 值 $01$ 交替的子串。每个子串可 阅读全文
posted @ 2020-11-18 21:28 With_penguin 阅读(112) 评论(0) 推荐(0)
摘要:题目链接 尝试构造这样一组匹配:满足对于任意两条匹配边 \(a\leftrightarrow b,c\leftrightarrow d\),若存在非匹配边 \(b\leftrightarrow c\) 且 \(w(b,c)<w(a,b)\),则一定有 \(w(c,d)\)。这样我们选择后手Bob,每 阅读全文
posted @ 2020-09-16 05:24 With_penguin 阅读(178) 评论(1) 推荐(0)
摘要:来做思维体操吧(这里主要是一些没用到什么算法,但是非常巧妙的题): FZOJ 3602 T2 题解 luogu P1600 天天爱跑步 题解 CF1365F Swaps Again 题解 CF1147F Zigzag Game ARC102D Revenge of BBuBBBlesort! 阅读全文
posted @ 2020-09-15 06:41 With_penguin 阅读(107) 评论(0) 推荐(0)
摘要:膜你赛T3考了这题的简化版,当场自闭。就此把此类题目总结一下。 膜你赛题意是这样的:相当于这个题最后问每个运动员被多少个观察员观察到。我们考虑把每条路径拆成向上和向下两条,本质相同,我们以向上路径举例。发现路径上满足 \(dep[S]-dep[x]=x\)(\(S\) 表示路径起点) 的 \(x\) 阅读全文
posted @ 2020-09-15 06:30 With_penguin 阅读(90) 评论(0) 推荐(0)
摘要:令 \(N=10^{18}-1,\sum\limits_{i=0}^{N}f(i)\equiv p\pmod{a}\)。 \[ \sum\limits_{i=1}^{N+1}f(i)\equiv p+1\pmod{a}\\ \sum\limits_{i=2}^{N+2}f(i)\equiv p+2\ 阅读全文
posted @ 2020-08-15 18:31 With_penguin 阅读(191) 评论(2) 推荐(0)
摘要:例题 CF1391E Pairs of Pairs 题解 CF468C Hack it! 题解 阅读全文
posted @ 2020-08-10 21:04 With_penguin 阅读(111) 评论(0) 推荐(0)
摘要:好神仙的一道题,考后想了很久也没想出来。 考虑对原图随便跑一个 \(dfs\) 树出来。记 \(dep_i\) 为点 \(i\) 的深度,\(K=\lceil\frac{n}{2}\rceil\)。 如果有 \(\forall dep_i\geq K\),那么我们就找到了一条长度大于等于 \(K\) 阅读全文
posted @ 2020-08-10 21:02 With_penguin 阅读(118) 评论(0) 推荐(0)
摘要:对最外层所有叶子编号(编号都为 $1$),然后把他们删去,然后给倒数第二层叶子编号(编号都为 $2$)。以此类推。 对于每一种编号考虑,由于一条路径最多只能覆盖两个编号相同的节点,所以最后答案为 \(\sum\limits_{i=1}^{k}\max(2\times L,sum[i])\)。其中 \ 阅读全文
posted @ 2020-07-22 23:27 With_penguin 阅读(126) 评论(0) 推荐(0)
摘要:一种非常特殊也算是好玩的题型吧,可以通过与交互库的交流来获取信息,感觉非常考验人类智慧。 例题: CF1364E X-OR 题解 阅读全文
posted @ 2020-06-25 23:57 With_penguin 阅读(143) 评论(0) 推荐(0)
摘要:蒟蒻的第一道正式交互题QWQ。 首先我们要明确一点:如果知道了排列中 $0$ 的位置,所有其他位置均可以通过一次询问求出。所以我们的思路是首先找到 $0$ 的位置。 考虑一个暴力的判断一个位置 \(x\) 是否是 $0$ 的方法: 随机出 30个值域在$[0,n-1]$范围内的数,记作 \(a\) 阅读全文
posted @ 2020-06-25 23:47 With_penguin 阅读(168) 评论(0) 推荐(0)
摘要:乍一看毫无思路的一道题。 假设我们选择交换的前后缀长度为$k$,我们考虑原本对称的两个点$i$ 和 \(n-i+1\)(\(i \leq k\))现在怎么样了: \(i \Rightarrow n-k+i\) \(n-i+1 \Rightarrow k-i+1\) 我们惊奇的发现,他们进行交换后还是 阅读全文
posted @ 2020-06-10 02:42 With_penguin 阅读(60) 评论(0) 推荐(0)
摘要:BK算法使用搜索+剪枝来寻找无向图最大团。 一些定义 团:完全子图。 最大团:点数最大的团。 最大独立集 :最大的点集使得点集中任意两点都没有边直接相连。 (以上摘自OI wiki) 算法流程 先定义一些数组和变量(有的是$dfs$里的变量): $cnt[i]$表示从$i-n$这些点的最大团点数 $ 阅读全文
posted @ 2020-06-03 20:57 With_penguin 阅读(1563) 评论(0) 推荐(0)
摘要:这道题要求的就是一个图的最大独立集,而我们知道一个图的最大独立集等于这个图的补图的最大团。使用BK算法求解即可。 代码: #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace 阅读全文
posted @ 2020-06-03 20:39 With_penguin 阅读(349) 评论(0) 推荐(0)