
图论——思维题
#
夕林山寸
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
1433G - Reducing Delivery Cost 思维分析 + 预处理最短路
暴力枚举每条边免费再用dij求最短路复杂度为:n*m*k*logm;需要进行优化:我们发现:把边i(x -> y)免费后对于路径 a -> b只有三种情况: 1:原本i不在 a->b最短路上,免费后也不在。 2:原本i不在 a->b最短路上,免费后在。 3:原本i在 a->b最短路上,免费后也在。只需要判断下: ds[a][b] 与 min(ds[a][x]+ds[y][b],ds[a][y]...原创 2020-11-05 19:02:33 · 182 阅读 · 0 评论 -
gym /102501 G Swapping Places 拓扑排序+优先队列 思维优化
只考虑朋友关系之间相互移动太难做了。正难则反,考虑不是朋友关系的一对位置,他们的相对位置一定不变。这样就能构建出一个DAG,(每个点只连其前面一个和后面一个点,最多2N条边)然后拓扑排序下 + 优先队列放置最小字典序的串即可!#include <bits/stdc++.h>using namespace std;typedef long long ll;#define re register#define ls (o<<1)#define rs (o<原创 2020-10-04 08:33:58 · 327 阅读 · 0 评论 -
BZOJ1123 BLO 割点+树上不连通点计数
把一个点相连的边去掉。若其不是割点。则图被分成一个图和一个点。点对个数为:2*(n-1);否则的话:对于割点x,把与其相连的边删去:其儿子节点y,若low[y]>=dfn[x],则以y为根在搜索树上的子树,最终会被分离。其贡献的点对为(即该部分点在前):siz[y]*(n-siz[y])若low[y]<dfn[x],则以y为跟在搜索树上的子树,最终会与x的父亲节点在一个联通块内。然后x节点单独成立一个联通块。如上图,把1号节点相连的边删去。形成4个联通块。分别原创 2020-06-28 17:54:12 · 261 阅读 · 0 评论 -
CodeForces - 1345E Quantifier Question 图上条件分析
这一题关键是弄懂题意:我们是从x1开始按顺序执行条件。比如3 23 11 2这个样例:A1,E2,E3 是可行的。(我一开始一位从入度为0的做为条件判断起点,但题意并不是,看最后一段,感觉还是有点模棱两可,可能是我的英语理解不太行)也就是说:x1,x2,x3,x4,x5……必须先执行id小的变量,即先执行1是A还是E,然后2是A还是E,以此类推。理清题意,其实这题很简单:对于a<b:如果有个语句xa -> xb,若xa是A,则xb一定是E,如果x.原创 2020-05-08 18:47:21 · 312 阅读 · 0 评论