POJ 1062(昂贵的聘礼 枚举 + Dijkstra)
来源:互联网 发布:剪裁证件照片的软件 编辑:程序博客网 时间:2024/06/12 13:47
POJ1062
这道题是中文题,不多说,但是问题是数据可能不易看懂,比如样例的10000 3 2 分别是原价,等级,和可能兑换物品的数量,接下来是两行可能兑换的物品及另需要的钱。
#include<iostream>#include<cstring>using namespace std;#define INF 0x3f3f3f3f#define Maxn 200int M,N;int price[Maxn][Maxn]; //price[i][j],从i到j所需要的钱int lv[Maxn]; //第i人的等级int num[Maxn]; //兑换i物所需要的数量int dist[Maxn]; //权int visit[Maxn];void input(){ memset(visit,0,sizeof(visit)); memset(price,0,sizeof(price)); memset(lv,0,sizeof(lv)); cin>>M>>N; for(int i = 1;i <= N; i++){ cin>>price[0][i]>>lv[i]>>num[i]; for(int j = 1;j <= num[i]; j++){ int w,v; cin>>w>>v; price[w][i] = v; } }}int Dijkstra(){ int pos,min; for(int i = 1;i <= N; i++) dist[i] = price[0][i]; for(int i = 1;i <= N; i++){ min = INF; pos = 0; for(int j = 1;j <= N; j++){ if(!visit[j] && min > dist[j]){ min = dist[j]; pos = j; } } visit[pos] = true; if(pos == 0) break; for(int j = 1;j <= N; j++){ if(!visit[j] && price[pos][j] > 0 && dist[j] > dist[pos] + price[pos][j]) dist[j] = dist[pos] + price[pos][j]; } } return dist[1];}int main(){ input(); int lowprice = INF;; int nowprice; int mlv; for(int i = 1;i <= N; i++){ //把每一个等级都当做能交易的最大等级算一遍 mlv = lv[i]; for(int j = 1;j <= N; j++) if(lv[j] > mlv || mlv - lv[j] > M) visit[j] = true; else visit[j] = false; nowprice = Dijkstra(); if(lowprice > nowprice) lowprice = nowprice; } cout<<lowprice<<endl; return 0;}
0 0
- poj 1062 昂贵的聘礼 【枚举 + dijkstra】
- POJ 1062(昂贵的聘礼 枚举 + Dijkstra)
- POJ 1062 昂贵的聘礼(dijkstra)
- POJ 1062 昂贵的聘礼(dijkstra)
- POJ 1062 昂贵的聘礼 (dijkstra)
- POJ 1062 昂贵的聘礼(dijkstra)
- POJ - 1062 昂贵的聘礼(Dijkstra)
- poj 1062 昂贵的聘礼 (dijkstra)
- POJ 1062 昂贵的聘礼(最短路径Dijkstra+枚举)
- POJ 1062 昂贵的聘礼(枚举+dijkstra算法)
- poj 1062 昂贵的聘礼 枚举等级dijkstra
- [POJ 1062] 昂贵的聘礼 [最短路+枚举] [dijkstra]
- POJ 1062 : 昂贵的聘礼 - 最短路Dijkstra+枚举(难)
- POJ 1062 昂贵的聘礼 Dijkstra
- POJ 1062 昂贵的聘礼 Dijkstra
- poj 1062 昂贵的聘礼 dijkstra
- POJ 1062昂贵的聘礼 (建图+dijkstra)
- POJ 1062 昂贵的聘礼 Dijkstra算法
- What's the difference between annotations and decorators in Angular 2?
- Flask框架和Flask-Script介绍
- (四)maven安装
- Java基础语法
- HDOJ -- 2084 树塔
- POJ 1062(昂贵的聘礼 枚举 + Dijkstra)
- Java 继承
- HDU Problem 1176 免费馅饼 【dp】
- java.util.concurrent并发包诸类概览
- pdo query与execute的区别
- 最大连续子序列
- redhat安装VMwaretool方法
- MAX DotNet 透明界面效果代码实例 转自CG++原帖
- String,StringBuffer,StringBuilder