详细看:http://blog.csdn.net/lyy289065406/article/details/6645852

简单说一下:每个物品是一个结点,边的权值是,edge[u][v]的值表示用物品u换物品v的价格

一开始所有物品都置为原价,即所有dist[i]为原价,用dijkstra算法,算出0点(啥物品都没有)到各点的最短距离,求出dist[1]即为花费

枚举每个物品的等级为这条交易链的最高等级,把所有等级高于它的或者比它小超过等级限制的点都剔除,可以用bool数组剔除,然后用上述的dijkstra

注意一个问题:

最好一开始dist全置为最大值int_max,然后你把所有点赋值原价格也好,仅仅把可行点(满足上述权值条件的点)赋原价格也好,如果点1被剔除了则continue也好,不continue也好,都对。反之,则有可能错,比如,你一开始把所有dist都置为0(或者所有可行点置为原价(此时点1有可能已经被剔除而你没有continue,进入了dijkstra算法中)),dist[1]还是0,结果return dist[1],就WA了。

#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cmath>
using namespace std;
const int SIZE=11111;
int level,n;
int price[SIZE];
int lev[SIZE];
int x[SIZE];
int g[SIZE][SIZE];
int dist[SIZE];
bool visit[SIZE];
void init_input()
{int u,v;cin>>level>>n;for(int i=1;i<=n;i++){cin>>price[i]>>lev[i]>>x[i];for(int j=1;j<=x[i];j++){cin>>u>>v;g[u][i]=v;}}
}
int dijkstra(int v0)
{for(int i=1;i<=n;i++){dist[i]=price[i];}for(int i=1;i<=n;i++){int node=0;int min=(1<<31)-1;for(int ii=1;ii<=n;ii++){if(!visit[ii]&&dist[ii]<min){min=dist[ii];node=ii;}}if(node==0)break;visit[node]=true;for(int ii=1;ii<=n;ii++){if(!visit[ii]&&g[node][ii]>0&&dist[ii]>dist[node]+g[node][ii]){dist[ii]=dist[node]+g[node][ii];}}}return dist[1];
}
int main()
{#ifndef ONLINE_JUDGEfreopen("G:/1.txt","r",stdin);freopen("G:/2.txt","w",stdout);#endifinit_input();int mxlevel;int minans=(1<<31)-1;int tmpans;for(int i=1;i<=n;i++){mxlevel=lev[i];for(int ii=1;ii<=n;ii++){if(lev[ii]>mxlevel||mxlevel-lev[ii]>level)visit[ii]=true;elsevisit[ii]=false;}tmpans=dijkstra(i);//cout<<tmpans<<endl;minans=min(minans,tmpans);}cout<<minans<<'\n';
}

POJ1062 Expensive dowry 【最短路dijkstra】相关推荐

  1. 图论-最短路Dijkstra算法详解超详 有图解

    整体来看dij就是从起点开始扩散致整个图的过程,为什么说他稳定呢,是因为他每次迭代,都能得到至少一个结点的最短路.(不像SPFA,玄学复杂度) 但是他的缺点就是不能处理带负权值的边,和代码量稍稍复杂. ...

  2. 单源最短路 Dijkstra算法 和 SPFA算法

    单源最短路 •从一个点出发,到达其他顶点的最短路径的长度. •基本操作:松弛 •d[u]+map[u, v]< d[v]这样的边(u,v)称为紧的(tense),可以对它进行松弛(relax): ...

  3. 最短路 dijkstra模板

    最短路 dijkstra模板 #pragma warning(disable:4996) #include<iostream> #include<string> #includ ...

  4. HDOJ 2112 HDU Today (最短路 Dijkstra SPFA)

    HDU Today Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  5. Til the Cows Come Home(最短路-Dijkstra)

    Til the Cows Come Home(最短路-Dijkstra) judge:https://vjudge.net/contest/297882#problem/A Time limit:10 ...

  6. Codeforces.1051F.The Shortest Statement(最短路Dijkstra)

    题目链接 先随便建一棵树. 如果两个点(u,v)不经过非树边,它们的dis可以直接算. 如果两个点经过非树边呢?即它们一定要经过该边的两个端点,可以直接用这两个点到 u,v 的最短路更新答案. 所以枚 ...

  7. HDU 2066-一个人的旅行(最短路Dijkstra)

    一个人的旅行 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Sub ...

  8. 单源最短路——dijkstra算法

    Dijkstra算法 1.定义概览 Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径.主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止. 问 ...

  9. 算法提高课-图论-单源最短路的综合应用-AcWing 342. 道路与航线:最短路dijkstra、拓扑排序 、综合题、好题

    题目分析 来源:acwing 分析: 道路:双向,边权非负, 航线:单向,边权可正可负,且无环. 根据题意,点可以分为很多团(连通块),团内部只有道路(道路是双向的,而且是连通的,所以不能存在航线,否 ...

  10. 最短路[Dijkstra和堆优化的Dijkstra][Bellman-Ford和SPFA][Floyd最短路](更新中)

    文章目录 第一类:单源最短路 一 所有边权都是正数(Dijkstra) 朴素版Dijkstra(稠密图) 堆优化版Dijkstra(稀疏图) 二 存在负权边(BF和SPFA) 第二类:多源汇最短路(F ...

最新文章

  1. 通用试题库管理系统 jsp mysql_通用在线考试系统 JSP+Servlet+MySQL
  2. 完美解决小程序一维数组循环渲染列表不够用问题
  3. 一分钟先生之拨云见日看绩效
  4. 日志管理系统的重要性---怼死你的客户
  5. Dispose() C# 优化内存
  6. QML基础类型之quaternion
  7. java实现的代理的两种办法
  8. ArcGIS实验教程——实验十:矢量数据投影变换
  9. java.lang.math.trunc,java – JPA/Hibernate返回BigDecimal不长
  10. 2能不用cuda_农村建房的新方法,只需要一块地,2天就建好房子,不用还能搬走...
  11. HyBrid App框架介绍
  12. 睡眠阶段分期——SVM和ELM分别与粒子群算法结合(main)
  13. c 语言翻译软件,分享一款 程序员秒懂 很优雅的翻译软件
  14. php源码怎样打包APP_HBuilder打包App方法
  15. D - Daydreaming Stockbroker Gym - 101550D
  16. Windows命令:tracert
  17. java 法定节假日_【java】如何获得每年的法定节假日期以及全年的日历
  18. 安装opensips时创建MySQL表_Centos7.6安装opensips并实现通话成功
  19. FileReader 和 FileWriter(Second)
  20. fread()和fwrite()函数分析

热门文章

  1. Android开发规范FML
  2. 在Linux下的基于myplayer实现的歌曲播放器
  3. React中的useSelector+useDispatch
  4. 中国地图省市下钻描点
  5. Android实现分享(Share)功能
  6. 打表法练习之吃草问题
  7. pandas数据分析小案例:以美国大选数据为例
  8. 用Python扒出B站“惊为天人”的UP主!
  9. 痔疮的罪魁祸首到底是谁
  10. 卷积神经网络CNN matlab程序