HDU--2851(最短路)
来源:互联网 发布:mac os沙盒 编辑:程序博客网 时间:2024/06/04 18:16
一道简单的最短路。。。
我去题目样例看了好久,原来12345那些目标地是说的哪一个road啊,坑……注意一下这里的权值不是边的是点的,初始化cost的时候不小心写错了,用优化的dij应该会更快一些……真是心好累。
代码:
#include<iostream>#include<cstring>#include<cstdio>#include<map>#include<cstring>#include<algorithm>#define INF 0X3f3f3f3f#define mem(a,b) memset(a,b,sizeof(a))using namespace std;typedef long long ll;typedef unsigned long long llu;const int maxn=2000+10;bool vis[maxn];int lowcost[maxn],cost[maxn][maxn];int n,m;struct node{ int l,r,w;} pp[maxn];void dij(int beg){ for(int i=0; i<n; ++i) { lowcost[i]=INF; vis[i]=false; } lowcost[beg]=0; for(int j=0; j<n; ++j) { int k=-1; int _min=INF; for(int i=0; i<n; ++i) if(!vis[i] && lowcost[i]<_min ) { _min=lowcost[i]; k=i; } if(k==-1) break; vis[k]=true; for(int i=0; i<n; ++i) if(!vis[i] && lowcost[k]+cost[k][i]<lowcost[i]) { lowcost[i]=lowcost[k]+cost[k][i]; } }}int main(){ freopen("1.txt","r",stdin); int kase; scanf("%d",&kase); while(kase--) { scanf("%d%d",&n,&m); mem(cost,INF); for(int i=0; i<n; ++i) { scanf("%d%d%d",&pp[i].l,&pp[i].r,&pp[i].w); } for(int i=0; i<n; ++i) { for(int j=i+1; j<n; ++j) if(pp[i].r<=pp[j].r && pp[i].r>=pp[j].l) cost[i][j]=pp[j].w; } dij(0); for(int i=0; i<m; ++i) { int x; scanf("%d",&x); if(lowcost[x-1]!=INF) printf("%d\n",lowcost[x-1]+pp[0].w); else printf("%d\n",-1); } } return 0;}
0 0
- hdu 2851(最短路)
- HDU--2851(最短路)
- HDU 2544 最短路 (单源最短路)
- hdu 1874 (最短路)
- hdu 3499 (最短路)
- hdu 1548(最短路)
- hdu 3832(最短路)
- 最短路 (HDU 2544)
- hdu 2544(最短路)
- hdu 1233(最短路)
- hdu 1546(最短路)
- hdu 3790(最短路)
- 最短路习题集(hdu)
- (HDU-2544)最短路
- 【HDU】-2544-最短路(最短路)(dijkstra)
- hdu 2544 最短路(最短路第一弹)
- hdu 2544 最短路 (diskstra求最短路)
- HDU 2544-最短路(最短路spfa)
- 毕业课题之---HOG+SVM的一个研究过程
- 中国国产汽车的悲哀
- Convert Sorted List to Binary Search Tree
- Python Show-Me-the-Code 第 0023 题 Web留言簿应用
- Branch分支结构
- HDU--2851(最短路)
- 初识JAVA4
- TangIDE游戏开发之70行代码实现打地鼠
- [SQL SERVER][災難復原] LDF檔毀損導致資料庫進入復原暫止
- Js数组的操作push,pop,shift,unshift等方法详细介绍
- ISO8583报文协议
- Redis中sentinel集群的搭建和Jedis测试 图文教程[三]
- POJ--1661(DP)
- 监督学习&回归问题(Regression)