随笔分类 - 图论
摘要:"$\large{题目链接}$" $\\$ $\Large\textbf{Solution: } \large{1.一种简单的思路:缩点 + dp,这里就不再赘述。\\2.介绍一种O(n + m)的优秀方法,考虑反向建边,然后从n点到1dfs,这样一旦第一次到达一点,那么当前的起点即为这个点的答案。
阅读全文
摘要:"$\large{题目链接}$" $\\$ $\Large\textbf{Solution: } \large{缩点+\text{Spfa},细节较多,咕咕咕。}$ $\\$ $\Large\textbf{Code: }$
阅读全文
摘要:"$\large{题目链接}$" $\\$ $\Large\textbf{Solution: } \large{1.因为每次提供的是一段时间的利润,具体的每个月并不清楚,所以考虑直接判断前缀和是否合法即可。\\2.可以考虑带权并查集,设\text{top[x] = pre[find(x)] pre[
阅读全文
摘要:"$\large{题目链接}$" $\\$ $\Large\textbf{Solution: } \large{对于题目中的飞机与道路,可以当作边权为负与零的一条边。\\由于每到一个城市能获得D的收益,那么可以给每条边的边权再加一个D,最后Spfa跑最长路顺便判环即可。}$ $\\$ $\Large
阅读全文
摘要:"$\large{题目链接}$" $\\$ $\Large\textbf{Solution: } \large{首先跑一遍最短路, 然后发现k特别小,考虑dp。\\设f[i][j]表示到第i个点,比最短路大j的路径个数。\\容易想到u v的转移即为 f[v][dis[u] + j + e[i].w
阅读全文
摘要:"$\large{题目链接}$" $\\$ $\Large\textbf{Solution: } \large{注意到两地之间的路径可能有多条,又要使路径上的边权最小最大,想到最大生成树。\\先建树,然后树上倍增即可。\\值得注意的是,图中所有点不一定联通,所以搜索时要谨慎。}$ $\Large\t
阅读全文
摘要:$\Large\textbf{Solution: } \large{1.分层图\\首先如果开两层,第一层到第二层表示买,第二层到第一层表示卖,会出现环或者卖卖多次的情况。\\所以开三层图,第一层表示没有买,二表示买,三表示卖。然后在图上跑最长路即可。注意到边权为负,所以要写Spfa。\\2.缩点+D
阅读全文
摘要:$\Large\textbf{Solution: } \large{容易想到跑分层图。就是细节比较多,数组一定要开大!!!}$ $\Large\textbf{Code: }$
阅读全文
摘要:$\Large\textbf{Solution: } \large{容易看出其实就是求最小生成树,可是n有5000,如果Kruskal存图空间会爆炸,那么只好写Prim。之前没写过,就当练练手。}$ $\Large\textbf{Code: }$
阅读全文
摘要:$\Large\textbf{Description: } \large{有一个n个点m条边的有向图,边权为1千米。有一个跑路器,每秒种可以跑2^{k}次方千米,求1到n的最短时间。(n \leq 50, m \leq 10000)}$ $\Large\textbf{Solution: } \lar
阅读全文

浙公网安备 33010602011771号