07 2019 档案

摘要:线段树分治 其实思想说起来是比较简单的,我们把这个题里的所有操作(比如连边删边查询balabala)全部拍到一棵线段树上,然后对着整棵树dfs一下求解答案,顺便把操作做一下,回溯的时候撤销一下即可。虽然有的操作需要以区间形式拍到树上,导致它可能会被拆成两个,但线段树的形态同样保证了操作最多只会被拆分 阅读全文
posted @ 2019-07-31 13:34 kma_093 阅读(230) 评论(0) 推荐(0)
摘要:开始补一些算几的东西。 定义引入 凸包到底是个什么东西呢? 在一个实数向量空间V中,对于给定集合X,所有包含X的凸集的交集S被称为X的凸包。X的凸包可以用X内所有点(X1,...Xn)的凸组合来构造. ——摘自百度百科 ~~有没有整个人都mengbi了~~ 对于二维凸包,有一个很形象的描述: 平面上 阅读全文
posted @ 2019-07-25 15:50 kma_093 阅读(860) 评论(0) 推荐(1)
摘要:题目链接: "蜥蜴" 题目分析: 一道网络流,先来分析一下问题: 在一个$r c$的图中分布了一些数,其他地方都用$0$填充,我们分别从指定的一些数出发,每次可以移动到周围距离为$d$以内的数上(或图外),原来的数会被$ 1$,任何时候数不能为负。各个数走法之间互相影响。问至多有多少个数出发能到达图 阅读全文
posted @ 2019-07-20 01:05 kma_093 阅读(177) 评论(0) 推荐(0)
摘要:智障儿童欢乐多 阅读全文
posted @ 2019-07-19 15:25 kma_093 阅读(506) 评论(6) 推荐(0)
摘要:题目链接: "奶牛的电信" 题目分析: 原本以为是一道裸最小割,仔细一看发现是割点…… 把每个点拆成两个点,中间用一条边权为1的边来连接,然后跑最小割即可 注意源点和汇点拆点后的边权要赋为INF,因为不能直接毁坏源点和汇点 代码: cpp include define N (1000 + 5) de 阅读全文
posted @ 2019-07-16 22:13 kma_093 阅读(159) 评论(0) 推荐(0)
摘要:网络流初探 2019.7.15,这个蒟蒻终于听懂了一听就很高大上的网络流~~其实是这个人过于zz~~,于是她准备来水一发博客。 前言 网络流解决的主要是这样一类问题: 给定一个源点、一个汇点,并给定$n$个点,$m$条边,每条边有一个最大流量,现从源点源源不断地注入可以视为无穷大的水流,问在汇点能接 阅读全文
posted @ 2019-07-16 10:20 kma_093 阅读(236) 评论(0) 推荐(0)
摘要:题目描述: 小 A 的花园的长和宽分别是 L,H 。小 A 喜欢在花园里做游戏。每次做游戏的时候,他都先把花园均匀分割成 L×H 个小方块,每个方块的长和宽都是 1 。然后,小 A 会从花园的西北角的小方块出发,按照一定的规则移动,在到达花园东南角的小方块时结束游戏。每次行动时,他都会移动到当前所在 阅读全文
posted @ 2019-07-14 01:06 kma_093 阅读(222) 评论(0) 推荐(0)
摘要:题目链接: "Red is good" 题目分析: 期望dp 对于这类期望dp,正着推过去总觉得有点别扭,很多时候我们采用反推的做法,设$f[i][j]$表示当前抽到了$i$张红,$j$张黑之后最优策略得到的钱的期望,则容易有转移方程: $ f[i][j] =(f[i 1][j] + 1) \fra 阅读全文
posted @ 2019-07-13 14:34 kma_093 阅读(149) 评论(0) 推荐(0)
摘要:写一篇博客纪念一下第一道AC的黑题~ 题目链接 "蒲公英" 题目分析 神仙分块……做完之后感觉分块比我理解的要深刻很多啊 思路参考洛咕第一篇题解,特别巧妙 首先预处理两个数组: $s[i][j]$:前缀和,前$i$(含第$i$块)个块中$j$的出现次数 $p[i][j]$:第$i$到$j$个块的最小 阅读全文
posted @ 2019-07-10 23:05 kma_093 阅读(263) 评论(0) 推荐(0)
摘要:前言 因为$kma$过菜导致被数据结构吊打QWQ,这里总结一下做过的树剖题,大概是个一句话题解+记录犯过的睿智错误的地方 染色 传送门 "染色" 分析 先考虑在线段树上维护区间颜色段的做法:记一下区间左右端点,每次合并上来是左儿子总数+右儿子总数,再判一下中间颜色是否一样决定是否 1 在树上维护同理 阅读全文
posted @ 2019-07-08 23:36 kma_093 阅读(284) 评论(0) 推荐(0)
摘要:题目链接: "传送门" 题目分析: 树剖板,支持单点修改,区间取反,区间求最大值/最小值/和 区间取反取两次等于没取,维护一个$rev\ tag$,每次打标记用$xor$打,记录是否需要翻转,$push\_down$里判一下如果要取反就$ =2 sum(p)$,容易发现新最大值是原最小值的相反数,最 阅读全文
posted @ 2019-07-08 22:57 kma_093 阅读(216) 评论(0) 推荐(0)
摘要:题目链接: "点我" 题目分析: 和树链剖分模板没什么区别,子树加就是直接在线段树上$modify(1, num[u], num[u] + siz[u] 1, d)$即可(用dfs序的思想,且注意减掉$u$节点自己) 不多讲了,直接上代码吧。 代码: include define int long 阅读全文
posted @ 2019-07-05 23:06 kma_093 阅读(165) 评论(0) 推荐(0)
摘要:一句话算法: 主席树,又名可持久化线段树,是一种 基于前缀和思想对历史版本进行保存,可支持单点修改,查询某个历史版本下某位置的值 的数据结构。 主要思想: 对于我们上面加粗的命题,我们先考虑暴力的做法: 对于每一个历史状态,建立一棵线段树维护当前状态的信息。 然后你会发现,状态转移和空间耗损都非常巨 阅读全文
posted @ 2019-07-05 23:01 kma_093 阅读(147) 评论(0) 推荐(0)
摘要:Manacher:一种能在$O(n)$的时间内求解一个字符串中最长回文串长度的算法 不过洛咕例题是真的少,加上模板也只有三道 问题: 给定一个字符串,求解其回文子串中最长的一个的长度。 几种暴力: $O(n ^ 3)$ 依次枚举它的每一个子串,然后复制翻转一位一位进行判断(一看就很慢。抬走。) $O 阅读全文
posted @ 2019-07-03 16:11 kma_093 阅读(109) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2019-07-03 13:54 kma_093 阅读(35) 评论(0) 推荐(0)
摘要:定义: Miller Rabin算法是一个随机化素数测试算法,作用是判断一个数是否是素数,且~~只要你脸不黑以及常数不要巨大~~一般来讲都比$O(\sqrt n)$的朴素做法更快。 定理: Miller Rabin主要基于费马小定理: $$a ^ {p 1} \equiv 1 (mod p)$$其中 阅读全文
posted @ 2019-07-01 17:35 kma_093 阅读(312) 评论(0) 推荐(0)