摘要:
题目链接:SCU 3366 Watering Hole 题目大意: 题解: 在已有图中添加一个点,表示地下天然水源,该点与其他各点之间建立一条权值为打井费用的边,在某一点打井相当于选择该点与地下水源之间的边,然后跑最小生成树即可。 #include <algorithm> #include <cst 阅读全文
摘要:
题目链接:luogu P4568 [JLOI2011]飞行路线 题目大意: 题解: 建立多层图,最多免费$k$次,所以有$k+1$层图,第$i$层表示当前已用$i$次免费机会,加边时在各层的都加上同一条边,一次免费相当于在上下两层的两点之间建立一条权值为$0$的边,起点在第$0$层,对整个多层图跑一 阅读全文
摘要:
题目链接:POJ 1201 Intervals 题目大意: 题解: 该题是一个差分约束系统。 设$f[i]\(表示在\)[0,i]$区间内取了多少个数。 由输入可以得到多个不等式$f[b] - f[a - 1] \geq c$,则在建图过程中点$a-1$有一条权值为$c$的有向边到点$b$。 同时题 阅读全文
摘要:
题目链接:POJ 3268 Silver Cow Party 题目大意: 题解: 存两张图: 第一张图正常存边,用于求从$x$返回其他点时的最短路。 第二张图存第一张图的反向边,由于从其他点到$x$是多源单终点,存反向边则可以看作是从$x$到其他点,再求一遍最短路。 将各点在两次最短路里的$dis$ 阅读全文
摘要:
题目链接:计蒜客 T1658 热浪 题目大意: 题解: 单源最短路模板。 #include <cstring> #include <iostream> #include <queue> using namespace std; #define INF 0x3f3f3f3f #define io_sp 阅读全文
摘要:
题目链接:计蒜客 T2021 飞扬的小鸟 题目大意: 题解: 按照横坐标从左往右递推,设$dp[i][j]\(为到达点\)(i,j)$所需的最小点击次数。 状态转移方程: \(dp[i][j] = min\{dp[i][j], dp[i - 1][j - x[i]] + 1, dp[i][j-x[i 阅读全文
摘要:
题目链接:POJ 1179 Polygon 题目大意: 题解: 区间$dp$题。 如果操作符是“\(+\)”: 区间$[L, R]\(的最大值\)=\(左区间\)[L, K]\(的最大值\)+\(右区间\)[K + 1, R]$的最大值; 区间$[L, R]\(的最小值\)=\(左区间\)[L, K 阅读全文