08 2024 档案
摘要:终于把 8 月的坑填上了 区间第k大/小问题 洛谷P3834 好吧,区间问题,考虑线段树 でも,线段树能求解的问题须是大问题的解可以从小问题的解合并而来,显然,第k大/小问题不满足,不能直接用一颗树解决 考虑用多颗树 怎么想到的?我要是想到了我就成主席了 首先,烧烤一下如何用线段树求 1-i 的第
阅读全文
摘要:我大抵是学不动了,于是进行了一个鱼的摸 生成随机数 #include<bits/stdc++.h> int main() { struct _timeb T; _ftime(&T); srand(T.millitm);//以上大抵是背下来即可 freopen("in.txt","w",stdout)
阅读全文
摘要:用的都是《算法竞赛》的码风哦 洛谷P3870 极简 ,开和关用 1 0 表示 ,然后区间修改,区间求和,裸题 洛谷P2846 这两道题一模一样 #include <bits/stdc++.h> using namespace std; const int N=100005; #define ll l
阅读全文
摘要:扫描线 用于求矩形面积并,矩形周长并 矩形面积并 洛谷P5490 图一 以下图片来自洛谷题解(难看的就是我自己画的qwq) 图二 以上是两个矩形,他们的面积并就是他们的面积取并 图三 考虑把这两个矩形的面积并转化成 A B C 三个矩形的面积(即把重叠问题转化为无重叠问题) 图四 如何求 A B C
阅读全文
摘要:定义 把树剖成一条条不相交的链,对树的操作就转化成了对链的操作 概念 重儿子:对于每一个非叶子节点,它的儿子中 以那个儿子为根的子树节点数最大的儿子 为该节点的重儿子 轻儿子:对于每一个非叶子节点,它的儿子中 非重儿子 的剩下所有儿子即为轻儿子 重边:连接任意两个重儿子的边叫做重边 轻边:剩下的即为
阅读全文
摘要:定义 LCA:求最近公共祖先,是一个基本的树上问题 首先给出一些定义 公共祖先:在一颗有根树上,若F是x的祖先,同时也是y的祖先,则F为x,y的公共祖先 最近公共祖先:x,y的公共祖先中深度最大的 如何求 简单的方法:分别从x,y出发向根节点走,打上标记,第一次相遇的节点就是LCA(x,y) 复杂度
阅读全文
摘要:一种特殊的存边方式 存储结构 int cnt; struct node{ int to,nxt,w; }e[N*2]; int head[N*2]; cnt : 边的编号 e[cnt].to : 边的终点 e[cnt].nxt : 与此边同一起点的下一个边的编号 w : 边权 head[u] : 以
阅读全文