图论
zzk_233
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
NOIP2017 Day1 T3 逛公园(spfa+dfs)
原来k≤50。。我还担心开不下。。设代表当前点在误差小于等于k时到达终点的情况数量首先求出n到每个点的最短路。然后dfs,每次如果dis[to]-dis[u]+edge[i].val≤k那么就可以更新。如果搜过的点出现过那么直接-1最后返回dfs的值(也就是f[1][K])即可#include<cstdio>#include<algorithm>#in...原创 2018-10-01 11:05:11 · 268 阅读 · 0 评论 -
noip模拟赛(关于欧拉回路的一点想法)
题目大意:给出n个点m条边,问有多少种方案可以走m-2条边2次,走2条边1次。边为双向边。无重边,有自环。这道题用到了欧拉回路的一些思想(考试的时候我是通过对拍出所有情况讨论过的!)可以理解成花一个一笔画,共用了2*m-2条边。这种用不重复的边走完全图的操作就是欧拉回路。而根据欧拉回路的性质,只有所有的点的度都是偶数或者只有两个点的度是奇数就可以满足。而因为是双向边,所以所有点的度...原创 2018-10-16 10:26:29 · 265 阅读 · 0 评论 -
codeforces 1005F Berland and the Shortest Paths
题目大意:给出n个点,m条边,和一个k,要求构成一棵树,每个点到1的距离都是原图中的最短路,输出有多少种。边权为1如果小于等于k种,就输出所有情况,以字符串的形式表示每条边是否选择,边的编号按照读入顺序。大于k种就随便输出k种。据说这叫最短路树。。。因为边权为1,所以考虑每个点最短的情况一定是从一个连向他的最短的点+1得到的。所以从1开始bfs,找到每个点的最短距离。然后枚举每条边...原创 2018-10-29 23:39:57 · 221 阅读 · 0 评论 -
codeforces 1051F The Shortest Statement
给出n个点,m条边求两点之间的最短路(m-n≤20)。看起来很难其实挺好写的,先dfs一遍,把所有跟环有关的边(也就是没遍历的边)的相关点存出来,然后求出全图到他们每个点的最短路,最后求两点间距离的时候可以当做求两点到开始的dfs树上lca的距离和与通过这些跟环右边的点的最短路来更新因为m-n≤20,所以最多40个点。#include<cstdio>#include...原创 2018-11-01 20:40:41 · 199 阅读 · 0 评论 -
codeforces 1042F Leaf Sets
题目大意:给定一棵n个点的树,将叶子节点分为数个集合,使集合里点对最长距离不超过k,求最少集合数。贪心,考虑一个非叶节点,它的下面的叶子结点对当前点之间的距离排序之后,当这个叶子结点和比它小的一个的和大于k的时候,代表后面的每一个叶子结点都要新开一个集合,而之前的可以继续作为一个集合向上更新。最终会剩下一个集合,所以答案要+1。注意要选择一个度数不为1的点作为开始点(就是非叶节点)。...转载 2018-11-01 21:08:02 · 263 阅读 · 0 评论
分享