题意: 给出一个有N个节点的无向图和 M 条边,每条边都有一个重力承受度,要从中找出一条从 1 节点到 n节点的路径,使得可以经过的车辆载重最大。

分析: 类似于最大流中找增广路,在求最短路的松弛操作上加以修改。

SPFA:

View Code

#include<stdio.h>
#include<string.h>
#define min(a,b)(a)<(b)?(a):(b)
#define clr(x)memset(x,0,sizeof(x))
#define INF 0x1f1f1f1f
struct node
{int to,next,w;
}e[1000005];
int tot;
int head[1005];
void add(int s,int u,int wi)
{e[tot].w=wi;e[tot].to=u;e[tot].next=head[s];head[s]=tot++;
}
int q[100005];
int f[1005];
int v[1005];
int main()
{int t,n,i,m,a,b,c,u,k,front,rear,ca=1,flow;scanf("%d",&t);while(t--){scanf("%d%d",&n,&m);tot=1;clr(head);clr(v);clr(f);while(m--){scanf("%d%d%d",&a,&b,&c);add(a,b,c);add(b,a,c);}f[1]=INF;front=rear=0;q[rear++]=1;v[1]=1;while(front<rear){u=q[front++];v[u]=0;for(i=head[u];i;i=e[i].next){k=e[i].to;flow=min(f[u],e[i].w);if(f[k]<flow){f[k]=flow;if(!v[k]){q[rear++]=k;v[k]=1;}}}}printf("Scenario #%d:\n",ca++);printf("%d\n\n",f[n]);}return 0;

Dijkstra:

View Code

#include<stdio.h>
#include<string.h>
#define min(a,b)(a)<(b)?(a):(b)
#define clr(x)memset(x,0,sizeof(x))
#define INF 0x1f1f1f1f
int  f[1005];
struct node
{int to,w,next;
}e[1000000];
int head[1005];
int tot;
void add(int s,int u,int wi)
{e[tot].to=u;e[tot].w=wi;e[tot].next=head[s];head[s]=tot++;
}
int n;
void dijkstra()
{int s[1005];int i,j,k,u,tmp;clr(f);clr(s);tmp=-1;f[1]=INF;for(i=head[1];i;i=e[i].next){k=e[i].to;f[k]=e[i].w;}for(i=1;i<=n;i++){u=-1;tmp=-1;    for(j=1;j<=n;j++)if(!s[j]&&(u==-1||f[j]>tmp)){tmp=f[j];u=j;}s[u]=1;for(j=head[u];j;j=e[j].next){k=e[j].to;if(!s[k]&&(min(f[u],e[j].w))>f[k])f[k]=min(f[u],e[j].w);}}
}
int main()
{int i,j,a,b,c,k,m,t,ca=1;scanf("%d",&t);while(t--){scanf("%d%d",&n,&m);tot=1;clr(head);while(m--){scanf("%d%d%d",&a,&b,&c);add(a,b,c);add(b,a,c);}dijkstra();printf("Scenario #%d:\n",ca++);printf("%d\n\n",f[n]);}return 0;
}

转载于:https://www.cnblogs.com/dream-wind/archive/2012/08/16/2642511.html

POJ 1797 Heavy Transportation相关推荐

  1. POJ 1797 Heavy Transportation 解题报告

    分类:图论,生成树,最短路,并查集 作者:ACShiryu 时间:2011-7-28 地址:ACShiryu's Blog Heavy Transportation Time Limit: 3000M ...

  2. POJ 1797 Heavy Transportation

    传送门:http://poj.org/problem?id=1797 不想吐槽了,弄了好久才AC 实现代码: #include <cstdio> #include <cstring& ...

  3. POJ 1797 Heavy Transportation 最短路变形(dijkstra算法)

    题目:click here 题意: 有n个城市,m条道路,在每条道路上有一个承载量,现在要求从1到n城市最大承载量,而最大承载量就是从城市1到城市n所有通路上的最大承载量. 分析: 其实这个求最大边可 ...

  4. (Realx dijkstra1.1)POJ 1797 Heavy Transportation(使用dijkstra来解决最大生成树问题)

    题目大意:有n个城市,m条道路,在每条道路上有一个承载量,现在要求从1到n城市最大承载量,而最大承载量就是从城市1到城市n所有通路上的最大承载量 解题思路:其实这个求最大边可以近似于求最短路,只要修改 ...

  5. C - Heavy Transportation POJ - 1797

    C - Heavy Transportation POJ - 1797 求从1~n的最大载货量 #include<iostream> #include<cstring> #in ...

  6. 【POJ No. 1797】重型运输 Heavy Transportation

    [POJ No. 1797]重型运输 Heavy Transportation POJ题目地址 [题意] Hugo需要将巨型起重机从工厂运输到他的客户所在的地方,经过的所有街道都必须能承受起重机的重量 ...

  7. Heavy Transportation

    Heavy Transportation(POJ 1793) 写这题被坑了好几次,这题解法思路就是在最短路中用权值最大的边为基础不断更新可以用朴素dijkstra,堆优化dijkstra, spfa, ...

  8. Heavy Transportation(最短路)

    Heavy Transportation(最短路) Time limit:3000 ms Memory limit:30000 kB OS:Linux judge:https://vjudge.net ...

  9. Heavy Transportation重型运输(Dijkstra算法 - 详解)

    目录 Heavy Transportation重型运输 题意描述及解题思路 这个题主要是给你多条雨果到客户位置的路,举个例子

最新文章

  1. iOS 导航栏遮挡问题 --- iOS开发系列 ---项目中成长的知识七
  2. 你知道吗?OAuth2客户端有两种,认证方式有七种。
  3. BZOJ1975[Sdoi2010]魔法猪学院——可持久化可并堆+最短路树
  4. 【Linux 内核】实时调度类 ① ( 进程分类 | 实时进程、普通进程 | Linux 内核 SCHED_FIFO、SCHED_RR 调度策略 | 实时调度实体 sched_rt_entity )
  5. 破解修改 Electron 软件 | 游戏
  6. java 和 区别_java 和 =的区别
  7. Android之Only fullscreen opaque activities can request orientation
  8. java学习(27):巩固练习
  9. 格力接受美国5.83亿巨额罚款!官方紧急回应...
  10. 心语收集13:有时候我真想忘了你,只记得这个世界,然而,我常常忘了整个世界,只记得你。...
  11. python接口自动化登录_python 接口自动化--登录
  12. 双指针 -- 验证回文串
  13. python基础之模块初识
  14. [IT技术]改变计算技术的伟大算法
  15. sqlSessionc操作数据库增删改无效问题
  16. 历年系统架构师论文题目总结(2012-2018)
  17. pycharm新建python文件快捷键_Pycharm快捷键
  18. HTML+CSS网页设计期末课程大作业:个人网站设计——个人介绍(7页) web前端开发技术 web课程设计 网页规划与设计
  19. 个人永久性免费-Excel催化剂功能第21波-Excel与Sqlserver零门槛交互-执行SQL语句篇...
  20. (Codeforce 757)E. Bash Plays with Functions(积性函数)

热门文章

  1. 鸿蒙系统对手机性能的提升,鸿蒙OS手机版再爆新特性,流畅度和性能大幅提升,用户评价很高...
  2. PTA17、求指定层的元素个数 (10 分)
  3. java 模板接口开发_微信公众平台 发送模板消息(Java接口开发)
  4. jquery学习记录
  5. pygame和python的区别_用Python和Pygame写游戏-从入门到精通(22)
  6. 文本挖掘之 文本相似度判定
  7. Ruby on Rails开发Web应用的基本概念
  8. Android中的事件分发和处理
  9. 设计模式(五):命令模式
  10. 3306端口的入侵【转】