下午遇到了 LuoguP3597和LuoguP4159 这应该是我在网络流后第二次遇到的拆点。这两道题是结合邻接矩阵和拆点。 邻接矩阵有一个性质:设邻接矩阵A,则在矩阵Ak中,点aij的值表示从点i到j长度为k的通路数量。长度表示边的个数。 P4159 要求的是:在有向图中,从起点到终点的路径权值和 ...
分类:
其他好文 时间:
2019-11-09 23:17:40
阅读次数:
94
"题目" 有一棵树,限制从每个点出发的次数最多为$c_i$,对于每个点i,求1到i的路径最多经过多少 次 边$,(n\leq 40000)$,保证每个点的$c$大于其入度 解法1 直接莽?拆点,中间连容量为$c_i$费用为0的边,点与点之间连容量为inf费用为1的边,从1到每个点i跑一次最大费用最大 ...
分类:
其他好文 时间:
2019-11-07 09:44:36
阅读次数:
92
E 题意: 一个起点,可以将火车点割掉,问最小的代价使得起点不能到达边界. 思路: 拆点,火车点的入边到出边流量是割掉的价格,其他都是INF.最小割就是答案 cpp include define ll long long using namespace std; const int N = 45; ...
分类:
其他好文 时间:
2019-10-04 19:22:24
阅读次数:
126
问题 A: 现代豪宅 时间限制: 1 Sec 内存限制: 256 MB 题面 题目描述 (题目译自 $JOI 2013 Final T3$「現代的な屋敷」) 你在某个很大的豪宅里迷路了。这个豪宅由东西方向$M$列,南北方向$N$行的正方形房间组成。 从西面开始第$x$列,从南面开始第y行的房间用$( ...
分类:
其他好文 时间:
2019-10-03 22:16:26
阅读次数:
113
T1: 题意:求一棵树上两条点不交路径,使它们的点权之和最大; 思考过程:联想到了一个相似的问题——树上求k条边不交路径的最大边权和,想到了拆点为边,很快发现不对。考虑到仅有两条边于是先求出一条直径,再分类讨论看第二条路是否经过第一条直径,不经过则bfs求最大值,经过则对直径上每一个点求一个最长的、 ...
分类:
其他好文 时间:
2019-10-03 00:51:15
阅读次数:
100
题意: 在一个$100 100$的方格中,要求从$b$走到$g$,途中经过$c$但不经过$u$,并且不能走已经做过的路。如果可以,就求出路径。 思路: 拆点建费用流,看能不能从$c$走两条路走到$b,g$。然后输出路径。 代码: cpp include include include include ...
分类:
其他好文 时间:
2019-09-29 19:36:47
阅读次数:
75
Koala and Notebook 首先肯定要把边拆点, 就变成了最短路问题, 最短路相同的字典序要求最小。 所以我们先bfs找出最短路图建边, 然后dfs把字典序从小到达枚举去更新点, 这样就是字典序最小的。 其实可以一遍bfs就完成的。 ...
分类:
其他好文 时间:
2019-09-25 18:42:01
阅读次数:
73
这场比赛没打,看同学fst了,于是来看看。 这道题看似简单,但是没想清楚细节真的不太行。像现在熬到十一点左右,脑子真的不行。 首先显然位数越小越好,因为每一位要比较,不如拆点。此时要拆成 两条有向链 (开始实现成了无向链) 然后这个时候就可以很方便地跑最短路了。但是细节比较多。 首先直接贪心走最小边 ...
分类:
其他好文 时间:
2019-09-19 01:06:25
阅读次数:
81
"K Subsequence" 题意:给定一个长度为$n$的数字序列,现可以从中选取k个单调上升的子序列,且每个元素至多只能被选中一次,问k个子序列元素和的最大值。 题解:对数列每一项拆点,连接流量为1,费用为$ a[i]$的边,所有项的右端点与其后大于等于这一项的项的左端点连流量1,费用0的边。源 ...
分类:
其他好文 时间:
2019-09-18 00:44:24
阅读次数:
103
问题描述 "LG2766" 题解 $\mathrm{Subtask 1}$ 一个求最长不下降子序列的问题,发现$n \le 500$,直接$O(n^2)$暴力DP即可。 $\mathrm{Subtask 2}$ 设$opt_i$代表区间$[1,i]$,且以$i$为结尾的最长不下降子序列。 考虑拆点, ...
分类:
其他好文 时间:
2019-09-13 20:21:30
阅读次数:
115