上一页 1 2 3 4 5 6 7 8 9 10 ··· 16 下一页
摘要: 题目链接:SCU 3366 Watering Hole 题目大意: 题解: 在已有图中添加一个点,表示地下天然水源,该点与其他各点之间建立一条权值为打井费用的边,在某一点打井相当于选择该点与地下水源之间的边,然后跑最小生成树即可。 #include <algorithm> #include <cst 阅读全文
posted @ 2022-01-30 20:31 ZZHHOOUU 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 题目链接:luogu P4568 [JLOI2011]飞行路线 题目大意: 题解: 建立多层图,最多免费$k$次,所以有$k+1$层图,第$i$层表示当前已用$i$次免费机会,加边时在各层的都加上同一条边,一次免费相当于在上下两层的两点之间建立一条权值为$0$的边,起点在第$0$层,对整个多层图跑一 阅读全文
posted @ 2022-01-30 20:16 ZZHHOOUU 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 题目链接:POJ 1201 Intervals 题目大意: 题解: 该题是一个差分约束系统。 设$f[i]\(表示在\)[0,i]$区间内取了多少个数。 由输入可以得到多个不等式$f[b] - f[a - 1] \geq c$,则在建图过程中点$a-1$有一条权值为$c$的有向边到点$b$。 同时题 阅读全文
posted @ 2022-01-30 20:09 ZZHHOOUU 阅读(72) 评论(0) 推荐(0) 编辑
摘要: 题目链接:POJ 3268 Silver Cow Party 题目大意: 题解: 存两张图: 第一张图正常存边,用于求从$x$返回其他点时的最短路。 第二张图存第一张图的反向边,由于从其他点到$x$是多源单终点,存反向边则可以看作是从$x$到其他点,再求一遍最短路。 将各点在两次最短路里的$dis$ 阅读全文
posted @ 2022-01-30 20:02 ZZHHOOUU 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 题目链接:计蒜客 T1658 热浪 题目大意: 题解: 单源最短路模板。 #include <cstring> #include <iostream> #include <queue> using namespace std; #define INF 0x3f3f3f3f #define io_sp 阅读全文
posted @ 2022-01-30 19:59 ZZHHOOUU 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 题目链接:计蒜客 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 阅读全文
posted @ 2022-01-30 16:46 ZZHHOOUU 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 题目链接:POJ 1179 Polygon 题目大意: 题解: 区间$dp$题。 如果操作符是“\(+\)”: 区间$[L, R]\(的最大值\)=\(左区间\)[L, K]\(的最大值\)+\(右区间\)[K + 1, R]$的最大值; 区间$[L, R]\(的最小值\)=\(左区间\)[L, K 阅读全文
posted @ 2022-01-30 16:41 ZZHHOOUU 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 题目链接:POJ 1742 Coins 题目大意: 给出硬币面额及每种硬币的个数,求从$1$到$m$能凑出面额的个数。 题解: 设$dp[i][j]$为前$i$种面值的硬币组成面额$j$时,第$i$种硬币剩余的数量。 默认$dp[i][j] = -1$,表示无法组成面额$j$。 若$dp[i - 1 阅读全文
posted @ 2022-01-29 21:36 ZZHHOOUU 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 题目链接:POJ 1276 Cash Machine 题目大意: 题解: 多重背包模板题,需要用到二进制拆分,将物品数$n_i$拆成$1,2,4,8,...,2^{k},x(x \leq 2^{k + 1})\(,则这些数的组合可以表示\)[1,n_i]$的所有数,就不需要循环从$1$跑到$n_i$ 阅读全文
posted @ 2022-01-29 21:27 ZZHHOOUU 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 题目链接:LibreOJ 6559 小奇采药 题目大意: 题解: 乍一看以为是背包模板题,但看到数据$m$的范围就知道背包会超时,于是考虑搜索并剪枝。 先按时间从大到小排序,求一个后缀和,$lastw[i]$表示$i$到$n$的时间和,$lastv[i]$表示$i$到$n$的价值和,然后跑$dfs$ 阅读全文
posted @ 2022-01-29 21:18 ZZHHOOUU 阅读(39) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 10 ··· 16 下一页