Description 最近,Elaxia和w**的关系特别好,他们很想整天在一起,但是大学的学习太紧张了,他们 必须合理地安排两个人在一起的时间.Elaxia和w**每天都要奔波于宿舍和实验室之间,他们 希望在节约时间的前提下,一起走的时间尽可能的长. 现在已知的是Elaxia和w**所在的宿舍和实验室的编号以及学校的地图:地图上有N个路 口,M条路,经过每条路都需要一定的时间. 具体地说,就是要求无向图中,两对点间最短路的最长公共路径. Input 第一行:两个整数N和M(含义如题目描述).…
在下最近刷了几道DAG图上dp的题目. 要提到的第一道是NOIP原题<最优贸易>.这是一个缩点后带点权的DAG上dp,它同时规定了起点和终点. 第二道是洛谷上的NOI导刊题目<最长路>,一个裸的DAG上dp,也同时规定了起点和终点. 对于这两道题目,我分别用了两种不同的方法来写. 第一道题目,我建立了一个反向图,从起点和终点分别用两张图来进行Floodfill,若某个点不能被两遍Floodfill遍历到,则这个点是无用点,应当剔除.这样是为了方便后面作DAG上dp时,使用拓扑序来进…
题意 在一个DAG上,从顶点1走到顶点n,路径上需要消费时间,求在限定时间内从1到n经过城市最多的一条路径 我的做法和题解差不多,不过最近可能看primer看多了,写得比较复杂和结构化 自己做了一些小优化..然而貌似跑得更慢了 先定义dp[i][j], 表示到第i个城市,经过j个城市所花的时间 然后转移方程比较好写,就是对于能到达i的点v dp[i][j] = min(dp[i][j], dp[v][j-1] + e.cost)  e是(i, v)这条边 因为要输出路径,所以还要有一个记录路径的…
本题大意:给定多个矩形的长和宽,让你判断最多能有几个矩形可以嵌套在一起,嵌套的条件为长和宽分别都小于另一个矩形的长和宽. 本题思路:其实这道题和之前做过的一道模版题数字三角形很相似,大体思路都一致,这道题是很经典的DAG上的最长路问题,用dp[ i ]表示以i为出发点的最长路的长度,因为每一步都只能走向他的相邻点,则 d[ i ]  = max(d[ j ] + 1)这里 j 是任意一个面积比 i 小的举行的编号. 下面的代码中附带了最小字典序最长路打印的问题,我们找到第一个路径最长的 i,往后…
有向无环图(DAG,Directed Acyclic Graph)上的动态规划是学习动态规划的基础.很多问题都可以转化为DAG上的最长路.最短路或路径计数问题. 一.DAG模型 [嵌套矩形问题] 问题:有n个矩形,每个矩形可以用两个整数a.b描述,表示它的长和宽.矩形X(a , b)可以嵌套在矩形Y(c , d)中当且仅当a<c,b<d,或者b<c,a<d(相当于把矩形X旋转90°).例如(1,5)可以嵌套在(6, 2)内,但不能嵌套在(3, 4)内.你的任务是选出尽可能多的矩形排…
在有向无环图上的动态规划是学习动态规划的基础,很多问题都可以转化为DAG上的最长路,最短路或路径计数问题 9.2.1 DAG模型 嵌套矩形问题: 矩形之间的可嵌套关系是一种典型的二元关系,二元关系可以用图来建模.如果矩形X可以嵌套在矩形Y里面,就从X到Y有一条有向边.这个有向图是无环的,因为一个矩形无法直接或间接地嵌套在自己内部(严格嵌套地时候,注意该种关系,这是保证前驱结点不影响后继节点的关键,否则记忆化搜索很容易出现错误) 换句话说,他是一个DAG,这样,所要求的便是DAG上的最长路径 硬币…
C国有n座城市,城市之间通过m条[b]单向[/b]道路连接.一条路径被称为最短路,当且仅当不存在从它的起点到终点的另外一条路径总长度比它小.两条最短路不同,当且仅当它们包含的道路序列不同.我们需要对每条道路的重要性进行评估,评估方式为计算有多少条不同的最短路经过该道路.现在,这个任务交给了你. Solution 我们要求每条边上最短路经过的数量,看上去非常不好求,但注意到点数只有1500,边数只有5000,可以考虑枚举源点,把所有答案加起来就是最后的答案. 问题来了,对于确定的原点,我们怎么计数…
原文链接https://www.cnblogs.com/zhouzhendong/p/9258043.html 题目传送门 - 洛谷P3953 题目传送门 - Vijos P2030 题意 给定一个有向图,有 $n$ 个节点 $m$ 条边,边权值 $\in[0,1000]$ . 小明要从 $1$ 走到 $n$ ,要求路径长度最大为 $d+k$ ,其中 $d$ 为 $1$ 到 $n$ 最短路长度. 问小明有多少种走法,答案对 $p$ 取模.如果有无数种走法,那么输出 $-1$ . $n\leq 1…
---题面--- 题解: 挺好的一道题. 首先我们将所有边反向,跑出n到每个点的最短路,然后f[i][j]表示从i号节点出发,路径长比最短路大j的方案数. 观察到,如果图中出现了0环,那么我们可以通过在环上走无数次来获得无数条不同路径,因此这就无解了. 如果没有0环,当且仅当这张图的最短路图是一个DAG(可以画图思考一下),因为如果没有0环,而最短路图中出现了环,那么意味着你可以无数次以最短路到达同一个点,而不增加路径长,这显然是不可能的,同理,如果有0环,那么最短路图中就会出现环. 因此我们判…
DAG上DP的思想 在下最近刷了几道DAG图上dp的题目.要提到的第一道是NOIP原题<最优贸易>.这是一个缩点后带点权的DAG上dp,它同时规定了起点和终点.第二道是洛谷上的NOI导刊题目<最长路>,一个裸的DAG上dp,也同时规定了起点和终点. 这是为什么? 我想了一下.首先spfa跑最长路,它得保证是一张DAG.否则你可以在一个正权环上无限的松弛下去.其次考虑一下最长路的DAG拓扑序dp做法.是不是一个点,能够更新它的状态的点的状态全部被确定了,它的状态才能够被确定?然而SP…