图论
文章平均质量分 89
cqbz_xsh
这个作者很懒,什么都没留下…
展开
-
最小费用最大流
1.问题 给定一张图,有 nnn 个节点,给定源点和汇点,有 mmm 条边,给定起点 uuu 与终点 vvv 并给出其容量 www 与流过单位流量需耗费的费用 xxx ,求最小费用。 2.解决方案 将每条边的单位流量看作其边权,将原本的 DinicDinicDinic 的 bfsbfsbfs 分层改为SPFA/DijSPFA/DijSPFA/Dijkstrakstrakstra 求最短路,每次增广最短路,求出的显然是最大流,又因为最大流算法可以回流,故求出的也一定是最小费用。 但如何保证在此过程中不会出现负原创 2022-01-06 21:36:41 · 375 阅读 · 1 评论 -
堆栈游戏
题目描述 Mirko在玩堆栈游戏。开始他有一个空的堆栈,编号为0.在第i步(1<=i<=300000),他会选择一个编号为v的堆栈,复制一份并做如下操作: 1.a v 表示将v号堆栈复制一份,新栈的编号为i,并将元素i压入新栈的栈顶。 2. b v 表示将v号堆栈复制一份,新栈的编号为i,将新栈的栈顶元素弹出。 3.c v w 将v号堆栈复制一份,编号为i,并比较第v号和第w号堆栈中有多少相同的数。 输入格式 输入格式:第一行一个整数n,表示有n步。 接下来n步,每步表示一个操作,如上所述。 输原创 2020-10-05 14:49:45 · 309 阅读 · 3 评论 -
LCA
#include<bits/stdc++.h> using namespace std; int v[10005],pj[10005],ne[10005],h[10005],d[10005],di[10005],f[10005][10005],cnt=0,n,m,t,T; queue<int>q; void add(int x,int y,int z){ v[++cnt]=y; pj[cnt]=z; ne[cnt]=h[x]; h[x]=cnt; } void bfs_ycl原创 2020-10-04 15:39:13 · 257 阅读 · 1 评论