POJ 1062昂贵的聘礼(dijk最短路)
来源:互联网 发布:黑马软件培训机构 编辑:程序博客网 时间:2024/05/21 11:13
题目地址:http://poj.org/problem?id=1062
妈蛋。。把mp数组初始化写到里边去了。。。每次输出一个都初始化了一遍。。这还有没有救。。。
这题看了一段时间,不会做。。主要是题目的数据范围给的非常不清楚。总想着只求一次最短路就可以。看了题解才发现枚举等级范围也不会超时。。然后后面 的就简单了
#include <iostream>#include <stdio.h>#include <string.h>#include <stdlib.h>#include <math.h>#include <ctype.h>#include <queue>#include <map>#include <algorithm>using namespace std;int n, m, mp[200][200], d[200], maxint=9999999, leave[200], dd[200], max2, vis[200];void dijk(int s){ int t, min1, pos, i, j; t=s+m; memset(vis,0,sizeof(vis)); for(i=1;i<=n;i++) { d[i]=dd[i]; } for(i=1;i<n;i++) { min1=maxint; for(j=1;j<=n;j++) { if(leave[j]>=s&&leave[j]<=t&&!vis[j]&&min1>d[j]) { min1=d[j]; pos=j; } } vis[pos]=1; //printf("%d %d %d\n",pos,min1, d[1]); for(j=1;j<=n;j++) { if(leave[j]>=s&&leave[j]<=t&&!vis[j]&&d[j]>d[pos]+mp[pos][j]) { d[j]=d[pos]+mp[pos][j]; } } } if(max2>d[1]) max2=d[1];}int main(){ int i, j, p, l, x, tt, v; scanf("%d%d",&m, &n); for(j=1;j<=n;j++) { for(int k=1;k<=n;k++) { mp[j][k]=maxint; } } for(i=0;i<n;i++) { scanf("%d%d%d",&p,&l,&x); leave[i+1]=l; dd[i+1]=p; for(j=0;j<x;j++) { scanf("%d%d",&tt,&v); mp[tt][i+1]=v; } } max2=1000000; for(i=leave[1]-m;i<=leave[1];i++) { dijk(i); } printf("%d\n",max2); return 0;}
0 0
- POJ 1062昂贵的聘礼(dijk最短路)
- poj 1062 昂贵的聘礼(最短路)
- POJ 1062 昂贵的聘礼 最短路
- poj 1062昂贵的聘礼 最短路
- poj 1062 昂贵的聘礼(最短路)
- POJ 1062 昂贵的聘礼 最短路
- POJ 1062 昂贵的聘礼 最短路
- POJ 1062 昂贵的聘礼(限制的最短路)
- poj 1062(最短路——昂贵的聘礼)
- POJ 1062 昂贵的聘礼 (最短路 Dijkstra)
- POJ 1062 - 昂贵的聘礼(最短路`dijkstra)
- POJ 1062 昂贵的聘礼 (dijkstra 最短路)
- poj 1062 最短路(昂贵的聘礼)
- POJ 题目1062 昂贵的聘礼(最短路,枚举)
- POJ - 1062 昂贵的聘礼 (最短路变形)
- poj 1062 昂贵的聘礼 (最短路)
- poj 1062 昂贵的聘礼 (dijkstra最短路)
- poj 1062 昂贵的聘礼(最短路dijkstra)
- JAVA 获取当前JVM系统进程ID pid
- Unix环境变量
- WSAsocket客户端请求服务器示例
- 强制删除 OpenStack Nova (Havana) 实例
- 正则表达式-笔记
- POJ 1062昂贵的聘礼(dijk最短路)
- 系统软件
- 排序算法之鸡尾酒排序
- JAVA自定义类加载器
- 搭建boa服务器
- 漫游计算机系统
- 技术债务(母鸡的遭遇)
- 查看mysql当前表使用的存储引擎
- eclipsej2ee+tomcat6.x