11 2024 档案
摘要:强连通分量(有向图) void tarjan(int x) { dfn[x]=low[x]=++cnt; stac[++top]=x; vis[x]=1; for(int i=hd[x];i;i=nxt[i]) { int y=go[i]; if(!dfn[y])//树边 {tarjan(y);lo
阅读全文
摘要:bitset 超级好用的东西.由于内存地址是按字节即 byte 寻址,而非比特 ,一个 类型的变量,虽然只能表示 , 但是也占了 的内存。 bitset 就是通过固定的优化,使得一个字节的八个比特能分别储存 位的 \(0
阅读全文
摘要:前置知识 树状数组(不会就学一下再来) 简介 因为树状数组可以非常简洁解决序列上的一些问题,所以考虑能否用树状数组解决矩阵(二维序列)的问题。 比较暴力的想法是对于每一横行建一个树状数组,再对每一列建一个树状数组统计答案。 但这样显然要 个树状数组,但是我们发现这些树状数组复用了一些节点
阅读全文
摘要:题目链接 主要算法 分治(最大值分治),st表 思路 1.因为我们考虑最主要的限制条件是最大值和排列,所以如果我们知道最大值就知道答案的长度。所以考虑按最大值分治,统计左边对右边的贡献。 2.接下来就是如何快速考虑一个区间是否合法,一个显然的是没有相同数,所以可以记前一个数的位置的最大值,如果小于左
阅读全文
摘要:题目链接 主要算法: 线段树(虚假的),奇技淫巧(真正的) 思路: 1.初步:考虑如何保证一个区间坐好后是一个矩形,有一个思路从另一个题中启示我们维护 ,但是这样无法保证在中间挖一个空的情况(有一个别的题解,可以染色后维护四个角和一个判框的东西),但我
阅读全文