写在前面 因为图论专题考试考到了博弈论,然后就跑过来通了一遍 至于图论考试为什么会扯到博弈论?我不知道,就很奇怪 正文 何为博弈论? 博弈论 ,是经济学的一个分支,主要研究具有竞争或对抗性质的对象,在一定规则下产生的各种行为。博弈论考虑游戏中的个体的预测行为和实际行为,并研究它们的优化策略。 详细解 ...
分类:
其他好文 时间:
2021-02-01 12:37:39
阅读次数:
0
题意: 戳这里 分析: 考场上只会暴搜/kk 正解: 首先 \(n\) 很小,所以我们理论上来说可以处理出任意相邻两点之间的路径,然后通过拼接得到任意一个点对之间的答案,那么我们开始考虑如何进行拼接,首先暴力拼接显然不可取,所以我们可以只记录一些有用的状态 由于每条路径都有起点和终点,这不是废话么 ...
分类:
其他好文 时间:
2021-01-29 11:40:24
阅读次数:
0
有向带权图的单源最短路径经典算法是dijkstra,下面就对算法的过程和代码实现进行记录 算法过程: 1、数据结构:图的带权邻接矩阵G.Edge[u][i],如果u到i有边则G.Edge[u][i]等于<u,i>边的权值;否则G.Edge[u][i]等于∞。 一维数组dist[i]记录从起始点到i节 ...
分类:
编程语言 时间:
2021-01-26 11:52:33
阅读次数:
0
题意 单源最短路,这里的最短路定义为 \(\sum_{i=1}^kw_i - max_{i=1}^kw_i + min_{i=1}^kw_i\) 就是普通的路径长度减去路径上最大的边权再加上最小的边权 思路 分层图跑 Dij ,可以搞成两个操作,一个是使边权变成 0 ,还有一个是把边权变成两倍。 这 ...
分类:
其他好文 时间:
2021-01-25 10:45:22
阅读次数:
0
Union-Find 算法,也就是常说的并查集算法,主要是解决图论中「动态连通性」问题的。 什么是动态连通性? 对于一幅图中,各个节点是否是相连的?如果不相连,就把他们连起来。涉及到几个操作: union:连接节点p和节点q find:查找节点p的父节点 connected:判断节点p和节点q是否是 ...
分类:
编程语言 时间:
2021-01-21 10:49:02
阅读次数:
0
最短路变形:用一条最小边替换一条最大边意义下的最短路 分层图,dis[i][0/1][0/1]表示点i,是否经过最小边,是否经过最大边 最小边两倍贡献,最大边0贡献 /* * Author : GhostCai * Expecto Patronum */ #include<bits/stdc++.h ...
分类:
其他好文 时间:
2021-01-19 11:43:34
阅读次数:
0
const int MAXN = 200000 + 10; const int MAXM = 2000000 + 10; int n, m; vi G[MAXN]; int vis[MAXN]; int fa[MAXN]; int ans[MAXN]; struct Query { int x, y ...
分类:
编程语言 时间:
2021-01-16 12:11:10
阅读次数:
0
原题链接 考察:bfs+三维数组 思路: 没什么好说的,就是三维走迷宫,比二维多两个方向就是了 POJ请不要用C++11的特性 最短路还是用bfs比较好,一开始用dfs结果貌似栈溢出了 #include <iostream> #include <cstring> #include <queue> u ...
分类:
其他好文 时间:
2021-01-11 10:57:35
阅读次数:
0
最小不相交路径覆盖:使用最小条数的路径,覆盖每个点恰好1次。 最小可相交路径覆盖:使用最小条数的路径,每个点可以覆盖多次。 最小可相交路径覆盖做一次Floyd传递闭包变成最小不相交路径覆盖。 最小不相交路径覆盖使用二分图匹配:把每个点x拆成x1(出度)和x2(入度),初始状态没有匹配,使用的路径数量 ...
分类:
其他好文 时间:
2021-01-06 12:12:01
阅读次数:
0
1 #define IO std::ios::sync_with_stdio(0) 2 #include <bits/stdc++.h> 3 using namespace std; 4 #define mk make_pair 5 #define pb push_back 6 const int ...
分类:
其他好文 时间:
2021-01-06 11:49:40
阅读次数:
0