11 2021 档案

摘要:Archie的OI总结 当一件自己投入其中很久的事情结束的时候,当然要总结一下。 感谢信息学竞赛,让我可以在高考前有机会来一次总结。 本文将会包括:Archie的高二上学期OI记 Archie的感谢 Archie的总结 鸣谢 感谢scz,lzc二位班主任对本彩笔竞赛之路的支持。 感谢jcl,drl, 阅读全文
posted @ 2021-11-21 21:33 Simex 阅读(275) 评论(1) 推荐(0) 编辑
摘要:Jisoo 不知道该怎么做? 匹配,开个栈并记录。删掉一个单词以后就从上一个单词的位置继续匹配。 为什么匹配过程不跳 fail?因为题目保证没有单词是另外一个单词的字串。 #include<cstdio> #include<iostream> #include<cstring> #include<i 阅读全文
posted @ 2021-11-08 17:27 Simex 阅读(34) 评论(0) 推荐(0) 编辑
摘要:Jisoo manacher算法有个性质 就是求出来的pi是以i为中心的回文串长度+1 所以manacher求出p,差分一下就行了。 #include<cstdio> #include<iostream> #include<cstring> #include<iomanip> #include 阅读全文
posted @ 2021-11-08 17:24 Simex 阅读(37) 评论(0) 推荐(0) 编辑
摘要:Jisoo 什么时候两个点中间夹得那个点不会被走?当他不在最短路上的时候。 按照这个思想进行检查就行了。 #include<cstdio> #include<iostream> #include<cstring> #include<iomanip> #include<cmath> #include< 阅读全文
posted @ 2021-11-08 17:22 Simex 阅读(25) 评论(0) 推荐(0) 编辑
摘要:Jisoo 大家都知道怎样单独求某一个东西的欧拉函数值Ψ(m)=mprimei|m(prime1prime) 其中右边的东西是用容斥定理搞出来的。那么我们是否也能够用容斥定理处理这个问题? 显然那个m是需要约去的,并且我们可以快速求出$\psi( 阅读全文
posted @ 2021-11-08 11:11 Simex 阅读(48) 评论(0) 推荐(0) 编辑
摘要:Jisoo 大家都知道,对于两个数 a,blcm,只要求去每个质数因数的较大的幂乘起来就行了。然后卡卡时 #include<cstdio> #include<iostream> #include<cstring> #include<iomanip> #include<cmath> #inc 阅读全文
posted @ 2021-11-08 08:19 Simex 阅读(26) 评论(0) 推荐(0) 编辑
摘要:Jisoo 我们来想一下序列上的O(nlogn)是怎么实现的 每次二分,把当前节点插进去替换,来让答案尽可能的更优。 换到树上呢?对于以u作为根节点的子树,我们可以发现去掉U其实都无所谓了,子树之间没有相互的影响,那就开个集合全扔进去就行了 然后放进u,并且按照类似于序列情况的方法进行 阅读全文
posted @ 2021-11-08 08:17 Simex 阅读(28) 评论(0) 推荐(0) 编辑
摘要:Jisoo 这是一种叫线段树合并的东西。 为了简化,我们需要动态开点。 并且一开始为每一个节点建一个线段树,当然是动态开点的 然后合并就行了,相同的线段树节点加起来,只有一个有的就返回另一个 记一个根,并且并查集一下。 #include<cstdio> #include<iostream> #inc 阅读全文
posted @ 2021-11-07 19:23 Simex 阅读(22) 评论(0) 推荐(0) 编辑
摘要:Jisoo 通常来讲这种题可以按照边来考虑 当然也可以按照点对。 对于任意一个点对,在新图上的距离是在原图上的一半上取整,这样,我们可以先把原来的距离都求出来,奇数点和偶数点求出来并且化简一波式子。 #include<cstdio> #include<iostream> #include<cstri 阅读全文
posted @ 2021-11-07 19:12 Simex 阅读(22) 评论(0) 推荐(0) 编辑
摘要:Jisoo 观察样例,知道肯定和六有关系 并且gcd(a,b)=gcd(b,ab) 就可以构造了 #include<cstdio> #include<iostream> #include<cstring> #include<iomanip> #include<cmath> #include<s 阅读全文
posted @ 2021-11-06 07:36 Simex 阅读(33) 评论(0) 推荐(0) 编辑
摘要:AC自动机 这些东西还是交给wiki 模板 #include<cstdio> #include<iostream> #include<cstring> #include<iomanip> #include<cmath> #include<stack> #include<queue> #include 阅读全文
posted @ 2021-11-05 23:09 Simex 阅读(30) 评论(0) 推荐(0) 编辑
摘要:Jisoo 13秒,跑,往死里跑 犹豫就会wa #include<cstdio> #include<iostream> #include<cstring> #include<iomanip> #include<cmath> #include<stack> #include<algorithm> us 阅读全文
posted @ 2021-11-05 17:59 Simex 阅读(36) 评论(0) 推荐(0) 编辑
摘要:Rose 非常有趣的构造题 看到这奇怪的数据范围就只要要依据这个搞事情 f(x+1018)=f(x)+1推而广之 ap1018+ap1(moda) 且有$\sum_{i=1}{10{18}-1}f(i)\equiv p(mod 阅读全文
posted @ 2021-11-05 12:57 Simex 阅读(60) 评论(0) 推荐(0) 编辑
摘要:Rose 不是一般的01背包 因为有后效性,也就是因为重量可以是负的(钩子越放越多) 为了抵消这种影响,按照钩子数量从大到小排序 #include<cstdio> #include<iostream> #include<cstring> #include<iomanip> #include<cmat 阅读全文
posted @ 2021-11-05 12:47 Simex 阅读(31) 评论(0) 推荐(0) 编辑
摘要:Jennie 反悔贪心 显然要把逃生能力弱的先送出去,也就是排个序。 这时候剩下的怎么办,万一有一些手长腿短的怎么办 先假设所有小矮人站成一排,然后一个个逃。 逃无可逃时候,看看把已经逃出去的中腿最长的拉下来会不会答案更优。 #include<cstdio> #include<iostream> # 阅读全文
posted @ 2021-11-05 12:42 Simex 阅读(45) 评论(0) 推荐(0) 编辑
摘要:Jennie 分块,对于每一个块,排个序 就可以了 #include<cstdio> #include<iostream> #include<cstring> #include<iomanip> #include<cmath> #include<stack> #include<algorithm> 阅读全文
posted @ 2021-11-05 12:38 Simex 阅读(34) 评论(0) 推荐(0) 编辑
摘要:Jinnie 看到莫名其妙的异或题,应该考虑按照位数处理。 这样我们分别考虑每一位的答案,需要先取模。 排序,让序列有了单调性,并且可以观察到,对于第k位只有两个数的和属于 [2k,2k+11][2k+1+2k,2k+22]才行 最后的右边界是什么东西?我们取模了啊. 阅读全文
posted @ 2021-11-05 06:48 Simex 阅读(26) 评论(0) 推荐(0) 编辑
摘要:Jisoo 众所周知,这个式子就是i=1n(kiki) 也就是nki1n(iki) 右边的东西用数论分块+等差数列搞一下就可以了 数论分块的每一块的右边界是$\ 阅读全文
posted @ 2021-11-04 16:34 Simex 阅读(37) 评论(0) 推荐(0) 编辑
摘要:可持久化线段树 如果我们要维护一个可持续的,支持查询历史版本的数组该怎么做 给每一个版本建立一颗线段树?那太占空间了。 我们可以不同版本公用一些节点,对于每个版本,只把和上一个版本不一样的部分建立线段树的新节点。这样我们就有了可持久化线段树。 Lisa 需要的前置知识:动态开点。 依照上面的思想,这 阅读全文
posted @ 2021-11-04 12:40 Simex 阅读(32) 评论(0) 推荐(0) 编辑
摘要:左偏树 一种可以合并的堆 前置知识 dist 对于一棵二叉树,我们定义 外节点 为左儿子或右儿子为空的节点,定义一个外节点的 为 ,一个不是外节点的节点 为其到子树中最近的外节点的距离加一。空节点的dist为0。 那么左偏树就是一颗满足堆的性质的二叉树,它的左儿子的dist大于等于右儿子的 核心 核 阅读全文
posted @ 2021-11-04 09:50 Simex 阅读(100) 评论(0) 推荐(0) 编辑
摘要:左偏树 一种可以合并的堆 前置知识 dist 对于一棵二叉树,我们定义 外节点 为左儿子或右儿子为空的节点,定义一个外节点的 为 ,一个不是外节点的节点 为其到子树中最近的外节点的距离加一。空节点的dist为0。 那么左偏树就是一颗满足堆的性质的二叉树,它的左儿子的dist大于等于右儿子的 核心 核 阅读全文
posted @ 2021-11-03 23:15 Simex 阅读(25) 评论(0) 推荐(0) 编辑
摘要:Treap treap是啥,是一种平衡树,tree+heap 众所周知,二叉平衡树一旦退化,复杂度将会很可怕。 treap则给每一个节点附上了一个随机的值,然后利用旋转操作,让这个二叉搜索树同时也满足堆的性质。期望下可以达到O(nlogn)的复杂度了。 具体怎么实现呢 大部分的操作和一般的二叉 阅读全文
posted @ 2021-11-03 22:59 Simex 阅读(95) 评论(0) 推荐(0) 编辑
摘要:Lisa 显然的贪心思路就是用田忌最大的和齐王最大的进行比较,如果不能,就从小到大找到第一个没有贡献的马,用它换掉最大的 马,重复以上操作 什么叫没贡献的马,最弱的马和最弱的马进行比较,如果田忌的最弱的赢不了,他就是没贡献的 为什么不能简简单单的去最垃圾的马去换 这样可能造成不必要的浪费,既然他能做 阅读全文
posted @ 2021-11-03 14:33 Simex 阅读(41) 评论(0) 推荐(0) 编辑
摘要:wqs二分时间 给定 个物品,我们需要在其中恰好选择 个,并且需要最大化收益。设对应的收益为 ,那么需要满足在最大化收益的前提下,每多选择一个物品,额外产生的收益是单调递减的,也就是 。同时,如果我们对物品的选择数量没有限制,即 不存在,那么我们应当能够快速地计算出最大的收益,以及达到最大的收益需要 阅读全文
posted @ 2021-11-02 14:29 Simex 阅读(238) 评论(0) 推荐(0) 编辑
摘要:jisoo 典型的CDQ分治 一维的时候比较就行了 二维的时候加一个数据结构,就像逆序对一样 三维的时候则需要,使用CDQ分治来解决了 首先把全局按照第一维从小到大排序,相同的按照第二维,还相同的按照第三维 然后开始从中间分开,分治。 显然这个过程位于 mid 两边内部的都会在自己的过程中被 阅读全文
posted @ 2021-11-02 12:27 Simex 阅读(33) 评论(0) 推荐(0) 编辑

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