好题。这题可以有三种解法:1.Dijkstra   2.优先队列   3.并查集

我这里是优先队列的实现,以后有时间再用另两种方法做做。。方法就是每次都选当前节点所连的权值最大的边,然后BFS搜索。

代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <cstdlib>
#include <string>
#include <vector>
#include <map>
#include <queue>
#include <functional>
using namespace std;
#define N 100007 struct node
{
int ind,wt;
bool operator < (const node &a)const
{
return wt<a.wt;
}
};
int start,endi,n,m,res;
int way[][],vis[][];
map<string,int> mp;
priority_queue<node> que; void BFS()
{
memset(vis,,sizeof(vis));
int i,maxi = ,id;
node now,next;
for(i=;i<=n;i++)
{
if(way[start][i] > maxi)
{
maxi = way[start][i];
id = i;
}
}
now.ind = id;
now.wt = maxi;
que.push(now);
//printf("%d %d\n",start,endi);
//printf("%d %d\n",now.ind,now.wt);
res = ;
while(!que.empty())
{
now = que.top();
que.pop();
if(now.ind == endi)
{
if(now.wt > res)
res = now.wt;
while(!que.empty())
que.pop();
return;
}
for(i=;i<=n;i++)
{
if(way[now.ind][i] && !vis[now.ind][i])
{
vis[now.ind][i] = vis[i][now.ind] = ;
next.ind = i;
next.wt = min(now.wt,way[now.ind][i]);
que.push(next);
//printf("%d %d\n",next.ind,next.wt);
}
}
}
} int main()
{
int cs = ,i,j,w,num;
string city1,city2;
node ka,kb;
while(scanf("%d%d",&n,&m)!=EOF && (n||m))
{
mp.clear();
num = ;
memset(way,,sizeof(way));
for(i=;i<m;i++)
{
cin>>city1;
cin>>city2;
scanf("%d",&w);
if(!mp[city1])
mp[city1] = num++;
if(!mp[city2])
mp[city2] = num++;
way[mp[city1]][mp[city2]] = w;
way[mp[city2]][mp[city1]] = w;
}
cin>>city1>>city2;
start = mp[city1];
endi = mp[city2];
BFS();
printf("Scenario #%d\n",cs++);
printf("%d tons\n\n",res);
}
return ;
}

POJ 2263 Heavy Cargo 多种解法的更多相关文章

  1. POJ 2263 Heavy Cargo(Floyd + map)

    Heavy Cargo Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 3768   Accepted: 2013 Descr ...

  2. POJ 2263 Heavy Cargo(ZOJ 1952)

    最短路变形或最大生成树变形. 问 目标两地之间能通过的小重量. 用最短路把初始赋为INF.其它为0.然后找 dis[v]=min(dis[u], d); 生成树就是把最大生成树找出来.直到出发和终点能 ...

  3. POJ2263 Heavy Cargo

    Heavy Cargo Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 4004   Accepted: 2124 Descr ...

  4. poj 1797 Heavy Transportation(最大生成树)

    poj 1797 Heavy Transportation Description Background Hugo Heavy is happy. After the breakdown of the ...

  5. 多种解法解决n皇后问题

    多种解法解决n皇后问题 0x1 目的 ​ 深入掌握栈应用的算法和设计 0x2 内容 ​ 编写一个程序exp3-8.cpp求解n皇后问题. 0x3 问题描述 即在n×n的方格棋盘上,放置n个皇后,要求每 ...

  6. 【BZOJ4555】求和(多种解法混合版本)

    [BZOJ4555]求和(多种解法混合版本) 题面 BZOJ 给定\(n\),求 \[f(n)=\sum_{i=0}^{n}\sum_{j=0}^{i}S(i,j)\times 2^j \times ...

  7. POJ 1797 Heavy Transportation / SCU 1819 Heavy Transportation (图论,最短路径)

    POJ 1797 Heavy Transportation / SCU 1819 Heavy Transportation (图论,最短路径) Description Background Hugo ...

  8. POJ.1797 Heavy Transportation (Dijkstra变形)

    POJ.1797 Heavy Transportation (Dijkstra变形) 题意分析 给出n个点,m条边的城市网络,其中 x y d 代表由x到y(或由y到x)的公路所能承受的最大重量为d, ...

  9. 巴塞尔问题(Basel problem)的多种解法

    巴塞尔问题(Basel problem)的多种解法——怎么计算\frac{1}{1^2}+\frac{1}{2^2}+\frac{1}{3^2}+\cdots112+122+132+⋯ ? (PS:本 ...

随机推荐

  1. 快速设置超炫banner,js插件

    http://www.themepunch.com/codecanyon/revolution_wp/ 记录一下以后用 //出自http://www.cnblogs.com/ahjesus 尊重作者辛 ...

  2. 自定义XML动态配置程序

    概述 1 在做程序开发时,我们往往要用到如下两个基本模块 1> 设置程序的基础参数,如分页的参数.邮件参数等: 2> 在基于表驱动开发时,即把一些判断的逻辑放在表数据中: 2 在这两个基本 ...

  3. CentOS下apache绑定域名

    本文主要介绍在CentOS下apache绑定域名以及apache绑定多个域名,首先要找到apache的配置文件httpd.conf的位置.CentOS操作系统一般在 /etc/httpd/conf 下 ...

  4. RHEL7软件包管理

    本文介绍RHEL7的软件包管理 RHEL7下主要有RPM和YUM这两种包管理: YUM使用简单但需要联网,YUM会去网上的YUM包源去获取所需要的软件包并获取该包依赖的其他包 RPM的需要的操作精度比 ...

  5. 精简CSS代码

    精简CSS代码可以帮助减小样式文件的大小,使代码清晰,方便维护. 使用简写属性及默认值 .header { margin-top: 10px; margin-right: 20px; margin-b ...

  6. MySQL到MsSQL的迁移工具——SSMA

    SQL Server迁移助手(SSMA)团队开发了针对MySQL的迁移助手Microsoft SQL Server Migration Assistant 2008 for MySQL.微软同时发布了 ...

  7. C#获取本地系统日期格式

    我们可以通过使用DataTime这个类来获取当前的时间.通过调用类中的各种方法我们可以获取不同的时间:如:日期(2008-09-04).时间(12:12:12).日期+时间(2008-09-04 12 ...

  8. Android中方便好用的倒计时类

       一.使用api提供的类进行操作 Android提供了CountDownTimer来让我们进行倒计时,可以让我们很方便的进行倒计时的操作.使用方式也很简单,下面直接贴代码就好了: package ...

  9. 发布的时候Archive灰色

    主要是因为发布的时候要选为将模拟器选择一下,选为Generic iOS Device. 来自为知笔记(Wiz)

  10. IOS 网络浅析-(十三 SDWebImage 实用技巧)

    IOS 网络浅析-(十三 SDWebImage 实用技巧) 首先让我描述一下为了什么而产生的实用技巧.(在TableView.CollectionView中)当用户所处环境WiFi网速不够快(不能立即 ...