hdu - 2851 Lode Runner (最短路)】的更多相关文章

http://acm.hdu.edu.cn/showproblem.php?pid=2851 首先有n层,每层的路径都有一个起点和终点和对应的危险值,如果某两层之间有交集,就能从这一层上到另外一层,不过只能上不能下. 给定m个目标点求出到目标点的最小危险值. 因为权值不一样,所以不能用bfs,dijkstra就好. 建图 就是把所有相连的边处理出来,因为读入是对y排序的.然后以此dijkstra就能求出所有点的最小花费. #include <cstdio> #include <cstri…
开始没理解题意.原来destinations是指路的序号.而不是点.DP. #include <stdio.h> #include <string.h> ]; typedef struct { int s, e, w; } road_st; road_st roads[]; int main() { int case_n; int n, m, des; int i, j, min; scanf("%d", &case_n); while (case_n-…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2851 题目大意:给出N条路径,M个终点(是路径的编号) .重合的路径才算连通的,且路径是单向的.每条路径都有一个cost.求到达指定路径的最小cost. 解题思路: 题目读懂了,但是却看不懂样例. 题目中的最小单位路径应该看成一个点,cost在点上. 建图 枚举任意两条路径$i$.$j$,如果有交叉,即$E[i]>=S[j]$那么从i到j连一条有向边.cost保留在$W[i]$.$W[j]$上. D…
点击打开链接 竟然是最短路!!!! 藏的好深啊 /* 求从路1走到路i的最小危险值, 给出n条路的起点和终点,当i,j两路有重合的,我们使map[i][j]=v[j]: 把路当作最短路中的点,如果有重合的map[i][j]=v[j]: 否则,map[i][j]=inf; 之后按照最短路的求法就可以了,注意最后要加上v[1]: */ #include"stdio.h" #include"string.h" #define N 2011 #define inf 9999…
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5294 题意: 给你个无向图: 1.求最少删除几条边就能破坏节点1到节点n的最短路径, 2.最多能删除多少条边同时保证1到n的最短距离不变. 题解: 首先用spfa或dijcstra跑出所有最短路组成的DAG图. 用这个图跑最大流节能解决第一个问题,用这个图跑一遍bfs最短路就能解决第二个问题. 然而我在跑最大流的时候竟然把DAG图建成双向的了orz.. 代码: #include<iostream>…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6181 题意:给一个图,求出次短路. 解法:我之前的模板不能解决这种图,就是最短路和次短路相等的情况,证明这题数据还是水了.下来我修改了一下次短路的,就可以避免这种情况了.提供一个sample 4 4 (1,2,1)( 1, 3,1) (2 4,1) (3 ,4,1).这组的正确答案是2,算法就来看代码吧. #include <bits/stdc++.h> using namespace std;…
http://acm.hdu.edu.cn/showproblem.php?pid=5889 题意: 给出一个图,帝国将军位于1处,敌军位于n处,敌军会选择最短路到达1点.现在帝国将军要在路径上放置障碍,每条边上都有一个放置障碍的代价.求至少需要多少代价. 思路: 首先就是求最短路,然后将最短路上的边重新进行构图跑最小割即可. 一开始求了两遍bfs,分别求出起点到各个点的距离和终点到各个点的距离,然后去判断每条边是否在最短路中,但是这样的话在最大流的构图中无法确定方向,然后就一直Wa... 其实…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5521 题意:有1-n共n个点,给出m个块(完全图),并知道块内各点之间互相到达花费时间均为ti.已知两人分别在点1和点n,求在哪些点相遇能使得花费时间最短.题解:显然先想到从点1和点n分别求最短路,然后枚举点找出哪些点是相遇花费时间最少的.但是这题边太多了,假设一个完全图里有x个点,那边就有x*(x-1)/2条了,必须化简其边.一个可行的办法是给每个完全图增加两个点,分别为入点和出点,入点向其中的点…
题目链接:[http://acm.hdu.edu.cn/showproblem.php?pid=3790] 最短路径问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 25620    Accepted Submission(s): 7650 Problem Description 给你n个点,m条无向边,每条边都有长度d和花费p,给你…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2962 Trucking Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1763    Accepted Submission(s): 618 Problem Description A certain local trucking co…