
图论
hrbust_wgq
当我们理解了一个东西的时候,所应该做的,是将这个东西放下去,好让更多的人明白和掌握;而不是举起来,以一种高姿态故作高深。这不是科学文化发展和传播的正道。有时候,所谓的“一言以蔽之”,不经意间,就“蔽”掉了求知者的热情和渴望,同时也就“蔽”掉了科学文化的健康传承。
把问题说清楚,尽可能让更多的人明白,是博客的宗旨。直达本质,直达底层,去术语化,用最通俗、最平易的语言和讲解方式说清“到底是什么”、“原来是这样”,是要努力的方向。
展开
-
Codeforces Round #720 (Div. 2) D. Nastia Plays with a Tree
D. Nastia Plays with a Tree题意:n个节点的树,用最少的操作次数使得每个节点的度数<=2保证最后也是一棵树。操作:选择一条已存在的边删掉在任意两个节点间添加一条边输出:最小的操作次数以及每次的删除边的节点以及加边的节点思路:看题解没写网络流解法,那我来写一下。首先看复杂度如果线性建边:O(n*sqrt(n))树是一个特殊的二分图,可以染色后保持原来的边不变且flow=1S——左部点 flow=2. 右部点——>T flow=2.这样跑出最大流之原创 2021-05-10 13:15:11 · 237 阅读 · 0 评论 -
可撤销并查集
可撤销并查集一定要按秩合并优化,不能路径压缩,不然不能保存父亲节点信息。复杂度:O(log(n))struct dsu{ int pre[N],top,sz[N]; p stk[N]; void init(int n) { for(int i=1; i<=n; i++)pre[i]=i,sz[i]=1; top=0; } int find(int x) { if(x==pre[x])retur原创 2020-10-02 20:43:33 · 1642 阅读 · 0 评论 -
树上背包问题
树上背包问题引例1引例1金明的预算方案题意:01背包问题,某些物品有依赖关系,但是一个物品只能依赖一个物品,最多可被两个物品依赖,问你最大价值是多少?思路:很明显就是01背包的思路,分类讨论就好了/*▄███████▀▀▀▀▀▀███████▄░▐████▀▒▒▒▒▒▒▒▒▒▒▀██████▄░███▀▒▒▒ACCEPTED▒▒▒▒▀█████░▐██▒▒▒▒▒▒▒▒▒▒▒▒▒...原创 2020-05-06 11:31:58 · 399 阅读 · 0 评论 -
Codeforces 1340 C (01BFS)
Codeforces 1340 C (01BFS)题意:你要从0走到n,红绿灯交替,绿灯可以随便走,红灯原创 2020-04-27 21:40:30 · 362 阅读 · 0 评论 -
Tarjan缩点解决环问题 codeforces
简介:tarjan是一种求强连通分量、双连通分量的常用算法,其拓展例如求缩点、割点、割桥以及2-SAT等都是非常实用的(tarjan orz)、1.点我题意:一个寝室里有n个房间和一个老鼠,老鼠一开始可能在任意一个房间,老鼠会从房间i跳到a[i]房间,问在哪些房间下陷阱可以用最小的代价抓到老鼠?思路:建完边之后发现这个图是有环有向图,我们直接tarjan强连通分量缩点重新建图,重构出来的图必...原创 2020-02-22 20:14:46 · 363 阅读 · 2 评论 -
差分约束
具体三类模型看这篇博客:添加链接描述写的很详细,我只给出对应例题的代码:建图技巧:1.a-b<=c ——> add(b,a,-c)spfa跑最短路2.a-b>=c ——> add(b,a,c)spfa跑最长路其他不等式或者等式可以转化成这种形式来做1、线性约束线性约束一般是在一维空间中给出一些变量(一般定义位置),然后告诉你某两个变量的约束关系,求两个变量a和...转载 2020-02-04 20:42:00 · 171 阅读 · 0 评论 -
North American Southeast Regional 2019 (Div 1) D - Swap Free
D - Swap Free题目链接:题意:找一个集合的最大子集,这个集合中不允许互斥,两个字符串能相互转化(串字符交换一次变成另一个串)就算互斥。思路:最大独立集定义:选出一些顶点使得这些顶点两两不相邻,则这些点构成的集合称为独立集。找出一个包含顶点数最多的独立集称为最大独立集。定理:最大独立集 = 所有顶点数 - 最小顶点覆盖 = 所有顶点数 - 最大匹配就是最大独立集模板题,建...原创 2020-01-19 18:11:43 · 3097 阅读 · 0 评论 -
NOIP2013 货车运输【最大生成树+倍增LCA】
NOIP2013 货车运输【最大生成树+倍增LCA】题目链接题意:n个点,m条无向边,每条边都有边权w,q次询问,问你从x–>y的(路径上的最小边权中)最大是多少?0<=n,m,q<=1e5思路:两个点之间可能有多种路径可以到达,那就构成了一个环,环之间的点可以两两互相到达,那么我们是否可以在保证联通的情况下贪心的把某些最小的边删去,保证了答案尽可能大,那么这不就是最大生...原创 2020-01-17 13:42:01 · 273 阅读 · 0 评论