博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 1062 昂贵的聘礼详解最短路变形
阅读量:5122 次
发布时间:2019-06-13

本文共 966 字,大约阅读时间需要 3 分钟。

POJ上难得一见的中文题……

思路:建立一个以0为源点的地图,那么Map[0][n]的值代表 第n号物品的价值,Map[i][j]代表用 j  替代 i 后,物品j的价值。我们认为酋长的承诺为节点 ‘1’ ,则我们需要做的就是通过一系列操作求出Map[0][1]的最小值,这时可以看出 这是一个最短路问题。题目还规定了,等级高的不会同意与等级低的交换,等级低的亦不会和高于自身m个级别的人交换,所以我们先来个简单的预处理:通过枚举1~N所有点作为最小等级,然后标记出所有非法点。

这样一来就是纯粹的最短路问题了。

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define INF 0x3f3f3f3f#define MAX 1005using namespace std;int vis[MAX],dist[MAX],n,m,Map[MAX][MAX];struct node{ int p,l,x;}a[MAX];int dij(){ int i,j,minn,k; for(i=1;i<=n;i++) dist[i]=Map[0][i]; for(i=1;i
dist[k] + Map[k][j] && !vis[j]) dist[j]=Map[k][j]+dist[k]; } } return dist[1];}int main(){ int i,j,x,w; while(scanf("%d%d",&m,&n)!=EOF) { for(i=0;i
m) vis[j]=1;//标记出非法点 else vis[j]=0; } minn=min(dij(),minn); } printf("%d\n",minn); } return 0;}

  

 

转载于:https://www.cnblogs.com/alan-W/p/5668393.html

你可能感兴趣的文章
第三次作业-功能测试
查看>>
(C++)浅谈using namespace std
查看>>
Http协议与生命周期
查看>>
Filter过滤器
查看>>
HTML5新标签在低版本浏览器中兼容性Checklist (hacks and issues)
查看>>
Laravel框架使用的一些注意细节(一)
查看>>
android-------非常好的图片加载框架和缓存库(Picasso)
查看>>
一次Redis 的性能测试和问题 [问题已经自己解决,见文章最后]
查看>>
原型模式(Prototype)
查看>>
Oracle数据库备份与恢复
查看>>
1007: [HNOI2008]水平可见直线
查看>>
Eclipse快捷键
查看>>
把数组排成最小的数
查看>>
网易2017校招编程题
查看>>
mybatis-plus之Mapper CRUD接口和 Service CRUD 接口
查看>>
android sudio 记录
查看>>
《我们仨》读后感
查看>>
100-days: twenty-four
查看>>
javascript定义对象写法
查看>>
AJAX专题
查看>>