摘要:
智障儿童欢乐多 阅读全文
摘要:
题目链接: "奶牛的电信" 题目分析: 原本以为是一道裸最小割,仔细一看发现是割点…… 把每个点拆成两个点,中间用一条边权为1的边来连接,然后跑最小割即可 注意源点和汇点拆点后的边权要赋为INF,因为不能直接毁坏源点和汇点 代码: cpp include define N (1000 + 5) de 阅读全文
摘要:
网络流初探 2019.7.15,这个蒟蒻终于听懂了一听就很高大上的网络流~~其实是这个人过于zz~~,于是她准备来水一发博客。 前言 网络流解决的主要是这样一类问题: 给定一个源点、一个汇点,并给定$n$个点,$m$条边,每条边有一个最大流量,现从源点源源不断地注入可以视为无穷大的水流,问在汇点能接 阅读全文
摘要:
题目描述: 小 A 的花园的长和宽分别是 L,H 。小 A 喜欢在花园里做游戏。每次做游戏的时候,他都先把花园均匀分割成 L×H 个小方块,每个方块的长和宽都是 1 。然后,小 A 会从花园的西北角的小方块出发,按照一定的规则移动,在到达花园东南角的小方块时结束游戏。每次行动时,他都会移动到当前所在 阅读全文
摘要:
题目链接: "Red is good" 题目分析: 期望dp 对于这类期望dp,正着推过去总觉得有点别扭,很多时候我们采用反推的做法,设$f[i][j]$表示当前抽到了$i$张红,$j$张黑之后最优策略得到的钱的期望,则容易有转移方程: $ f[i][j] =(f[i 1][j] + 1) \fra 阅读全文
摘要:
写一篇博客纪念一下第一道AC的黑题~ 题目链接 "蒲公英" 题目分析 神仙分块……做完之后感觉分块比我理解的要深刻很多啊 思路参考洛咕第一篇题解,特别巧妙 首先预处理两个数组: $s[i][j]$:前缀和,前$i$(含第$i$块)个块中$j$的出现次数 $p[i][j]$:第$i$到$j$个块的最小 阅读全文
摘要:
前言 因为$kma$过菜导致被数据结构吊打QWQ,这里总结一下做过的树剖题,大概是个一句话题解+记录犯过的睿智错误的地方 染色 传送门 "染色" 分析 先考虑在线段树上维护区间颜色段的做法:记一下区间左右端点,每次合并上来是左儿子总数+右儿子总数,再判一下中间颜色是否一样决定是否 1 在树上维护同理 阅读全文
摘要:
题目链接: "传送门" 题目分析: 树剖板,支持单点修改,区间取反,区间求最大值/最小值/和 区间取反取两次等于没取,维护一个$rev\ tag$,每次打标记用$xor$打,记录是否需要翻转,$push\_down$里判一下如果要取反就$ =2 sum(p)$,容易发现新最大值是原最小值的相反数,最 阅读全文
摘要:
题目链接: "点我" 题目分析: 和树链剖分模板没什么区别,子树加就是直接在线段树上$modify(1, num[u], num[u] + siz[u] 1, d)$即可(用dfs序的思想,且注意减掉$u$节点自己) 不多讲了,直接上代码吧。 代码: include define int long 阅读全文
摘要:
一句话算法: 主席树,又名可持久化线段树,是一种 基于前缀和思想对历史版本进行保存,可支持单点修改,查询某个历史版本下某位置的值 的数据结构。 主要思想: 对于我们上面加粗的命题,我们先考虑暴力的做法: 对于每一个历史状态,建立一棵线段树维护当前状态的信息。 然后你会发现,状态转移和空间耗损都非常巨 阅读全文