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 阅读全文
posted @ 2024-11-27 11:41 storms11 阅读(5) 评论(0) 推荐(0) 编辑
摘要:bitset 超级好用的东西.由于内存地址是按字节即 byte 寻址,而非比特bit ,一个 bool 类型的变量,虽然只能表示 0/1 , 但是也占了 1byte 的内存。 bitset 就是通过固定的优化,使得一个字节的八个比特能分别储存 8 位的 \(0 阅读全文
posted @ 2024-11-27 09:49 storms11 阅读(4) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2024-11-26 21:37 storms11 阅读(2) 评论(0) 推荐(1) 编辑
该文被密码保护。
posted @ 2024-11-25 19:57 storms11 阅读(3) 评论(1) 推荐(0) 编辑
该文被密码保护。
posted @ 2024-11-21 16:54 storms11 阅读(2) 评论(0) 推荐(0) 编辑
摘要:前置知识 树状数组(不会就学一下再来) 简介 因为树状数组可以非常简洁解决序列上的一些问题,所以考虑能否用树状数组解决矩阵(二维序列)的问题。 比较暴力的想法是对于每一横行建一个树状数组,再对每一列建一个树状数组统计答案。 但这样显然要n+m个树状数组,但是我们发现这些树状数组复用了一些节点 阅读全文
posted @ 2024-11-07 14:36 storms11 阅读(38) 评论(0) 推荐(0) 编辑
摘要:题目链接 主要算法 分治(最大值分治),st表 思路 1.因为我们考虑最主要的限制条件是最大值和排列,所以如果我们知道最大值就知道答案的长度。所以考虑按最大值分治,统计左边对右边的贡献。 2.接下来就是如何快速考虑一个区间是否合法,一个显然的是没有相同数,所以可以记前一个数的位置的最大值,如果小于左 阅读全文
posted @ 2024-11-06 19:43 storms11 阅读(10) 评论(1) 推荐(1) 编辑
摘要:题目链接 主要算法: 线段树(虚假的),奇技淫巧(真正的) 思路: 1.初步:考虑如何保证一个区间坐好后是一个矩形,有一个思路从另一个题中启示我们维护 xmin,xmax,ymin,ymax ,但是这样无法保证在中间挖一个空的情况(有一个别的题解,可以染色后维护四个角和一个判框的东西),但我 阅读全文
posted @ 2024-11-02 14:11 storms11 阅读(6) 评论(0) 推荐(0) 编辑

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