poj 1062 昂贵的聘礼

http://162.105.81.212/JudgeOnline/problem?id=1062

一个特别要注意的就是题目里描述的"等级制度", 可以枚举

for(j=1; j<=n; j++) if(lev[j] >= lev[1] - m + i && lev[j] <= lev[1] + i)//枚举等级允许范围的结点 limit[j] = 1;

最小花费用的dijkstra算法求的, 在初始化dist[]数组时要注意,是否允许他们交易

for(i=1; i<=n; i++) { if(limit[i]) dist[i] = map[1][i]; else dist[i] = INF; visted[i] = 0; }

dijkstra算法都好久没写了, 照着书本写的- -

#include<iostream> using namespace std; #define INF 0x7ffffff #define MAX 101 int map[MAX][MAX], value[MAX], lev[MAX], dist[MAX]; int m, n; bool limit[MAX], visted[MAX]; //dijkstra求最短路径, dist[i]表示始点(1)到i点的花费 int dijkstra() { int i, j, k, mindist; for(i=1; i<=n; i++) { if(limit[i]) dist[i] = map[1][i]; else dist[i] = INF; visted[i] = 0; } dist[1] = 0; for(i=1; i<=n; i++) { mindist = INF; //选取最小的dist值 for(j=1; j<=n; j++) { if(!visted[j] && limit[j] && dist[j] < mindist) { k = j; mindist = dist[j]; } } visted[k] = 1; //更新所有未访问节点的dist值 for(j=1; j<=n; j++) { if(!visted[j] && limit[j]) if(map[k][j] < INF && dist[k] + map[k][j] < dist[j]) dist[j] = dist[k] + map[k][j]; } } mindist = INF; for(i=1; i<=n; i++) { dist[i] += value[i]; if(dist[i] < mindist) mindist = dist[i]; } return mindist; } int main() { int i, j, t, tmp, min; while(scanf("%d%d", &m, &n) != EOF) { //构图 for(i=1; i<=n; i++) for(j=1; j<=n; j++) map[i][j] = i==j?0:INF; for(i=1; i<=n; i++) { scanf("%d%d%d", &value[i], &lev[i], &t); for(j=1; j<=t; j++) { scanf("%d", &tmp); scanf("%d", &map[i][tmp]); } } min = value[1]; for(i=0; i<=m; i++) { memset(limit, 0, sizeof(limit)); for(j=1; j<=n; j++) if(lev[j] >= lev[1] - m + i && lev[j] <= lev[1] + i)//枚举等级允许范围的结点 limit[j] = 1; tmp = dijkstra(); if(min > tmp) min = tmp; } printf("%d/n", min); } return 0; }

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READme.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值