UVA 10917 Walk Through the Forest


最短路+DP


Walk Through the Forest
Time Limit: 3000MS Memory Limit: Unknown 64bit IO Format: %lld & %llu

[Submit]   [Go Back]   [Status]  

Description

Download as PDF

Problem C: A Walk Through the Forest

Jimmy experiences a lot of stress at work these days, especially since his accident made working difficult. To relax after a hard day, he likes to walk home. To make things even nicer, his office is on one side of a forest, and his house is on the other. A nice walk through the forest, seeing the birds and chipmunks is quite enjoyable.

The forest is beautiful, and Jimmy wants to take a different route everyday. He also wants to get home before dark, so he always takes a path to make progress towards his house. He considers taking a path from A to B to be progress if there exists a route from B to his home that is shorter than any possible route from A. Calculate how many different routes through the forest Jimmy might take.

Input

Input contains several test cases followed by a line containing 0. Jimmy has numbered each intersection or joining of paths starting with 1. His office is numbered 1, and his house is numbered 2. The first line of each test case gives the number of intersections N, 1 < N ≤ 1000, and the number of paths M. The following M lines each contain a pair of intersections a  b and an integer distance 1 ≤ d ≤ 1000000 indicating a path of length d between intersection a and a different intersection b. Jimmy may walk a path any direction he chooses. There is at most one path between any pair of intersections.

Output

For each test case, output a single integer indicating the number of different routes through the forest. You may assume that this number does not exceed 2147483647.

Sample Input

5 6
1 3 2
1 4 2
3 4 3
1 5 12
4 2 34
5 2 24
7 8
1 3 1
1 4 1
3 7 1
7 4 1
7 5 1
6 7 1
5 2 1
6 2 1
0

Output for Sample Input

2
4

(apologies to) Richard Krueger

[Submit]   [Go Back]   [Status]  




#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>using namespace std;const int maxn=1010,INF=0x3f3f3f3f;int g[maxn][maxn],n,m,dist[maxn];
bool vis[maxn];void dijkstra(int st)
{memset(vis,0,sizeof(vis));memset(dist,63,sizeof(dist));dist[st]=0;for(int i=1;i<=n;i++){int mark=-1,mindist=INF;for(int j=1;j<=n;j++){if(!vis[j]&&dist[j]<mindist){mindist=dist[j];mark=j;}}if(mark==-1) break;vis[mark]=true;for(int j=1;j<=n;j++){if(!vis[j]&&dist[j]>dist[mark]+g[mark][j])dist[j]=dist[mark]+g[mark][j];}}
}int dp[maxn];int dfs(int u)
{if(dp[u]!=-1)return dp[u];int res=0;for(int i=1;i<=n;i++){if(g[u][i]!=INF&&dist[i]<dist[u])res+=dfs(i);}return dp[u]=res;
}int main()
{while(scanf("%d",&n)!=EOF&&n){scanf("%d",&m);memset(g,63,sizeof(g));for(int i=0;i<m;i++){int a,b,c;scanf("%d%d%d",&a,&b,&c);g[a][b]=g[b][a]=c;}dijkstra(2);memset(dp,-1,sizeof(dp));dp[2]=1;printf("%d\n",dfs(1));}return 0;
}


转载于:https://www.cnblogs.com/hrhguanli/p/5099194.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/357815.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一文教你用java实现愤怒的小鸟游戏

导读&#xff1a;Java语言是一门面向对象的编程语言&#xff0c;它不但汲取了C语言的各种精髓&#xff0c;而且还抛弃了C语言里晦涩难懂的多继承和指针等概念&#xff0c;所以Java语言具有的特征便是&#xff1a;功能超强和易用实用。Jbox2D中不仅集成了大量物理运动学和机械运…

WinForm - 两个窗体之间的方法调用

方法1&#xff1a; 所有权法//Form1://需要有一个公共的刷新方法public void Refresh_Method(){  //...} //在调用Form2时,要把Form2的所有者设为Form1Form2 f2 new Form2() ;f2.Owner this;f2.ShowDialog() ; //Form2://在需要对其调用者&#xff0…

一文教你用java实现儿时的超级玛丽游戏

导读&#xff1a;近年来&#xff0c;Java作为一种新的编程语言&#xff0c;以其简单性、可移植性和平台无关性等优点&#xff0c;得到了广泛地应用。J2SE称为Java标准版或Java标准平台。J2SE提供了标准的SDK开发平台。利用该平台可以开发Java桌面应用程序和低端的服务器应用程序…

java开发一款雷电游戏

导读:电脑游戏,是指在计算机上能够运转的游戏软件。这种软件具有较强的娱乐性。电脑游戏的创新和发展与硬件、软件的发展紧密相关。它能够给玩家提供一个虚拟的环境,使游戏带给了人们很多的享受和欢乐。雷电游戏因为操作简单,节奏明快,一直是纵轴射击游戏的经典之作。经常…

glassfish_具有GlassFish和一致性的高性能JPA –第2部分

glassfish在我的四部分系列的第二部分中&#xff0c;我将解释将Coherence与EclipseLink和GlassFish结合使用的第一个策略。它描述了配置带有Coherence的JPA支持的Cache所必须采取的步骤&#xff0c;以及如何在GlassFish中使用它。高性能数据存储。 一般的做法 您可以将Coherenc…

java开发一个连连看小游戏

导读:连连看是一种消除类益智游戏,核心要求是在规定的时间内,消除游戏界面中选中的两张相同的图案,直至完全消除所有图案。这款游戏操作简单(只需单击鼠标左键操作)、面向人群广泛,在限时操作的游戏要求下,吸引玩家自发地锻炼观察能力、判断能力和反应能力,故从推出至今…

java枚举的特点_Java中有些好的特性(二):枚举

前言我在写上一篇时&#xff0c;开始选了一个很土的名字“Java超过C#的地方”&#xff0c;然后引起了某些同学的不满&#xff0c;后来修改了个名。我在这里再次申明一下&#xff0c;我没有贬低任何语言之意&#xff0c;纯粹是从一个.NET程序员的角度去看Java&#xff0c;看看是…

java开发一款推箱子游戏

导读:社会在进步,人们生活质量也在日益提高。高强度的压力也接踵而来。社会中急需出现新的有效方式来缓解人们的压力。此次设计符合了社会需求,Java推箱子游戏可以让人们在闲暇之余,体验游戏的乐趣。具有操作简单,易于上手的特点。 推箱子游戏的玩法十分简单——控制人物绕…

java ee技术_Java EE 6与Spring Framework:技术决策过程

java ee技术在过去的几个月中&#xff0c;我们经历了这个决策过程&#xff1a;为Java平台上的企业开发选择哪种技术堆栈&#xff1f; 有多种选择。 但是&#xff0c;我们深入讨论的是&#xff1a;纯Java EE 6堆栈与带有Java EE的Spring。 以下博客文章总结了当您考虑这些技术堆…

java开发一款坦克大战游戏

导读:随着人们对生活质量的要求一天比一天高,为了让人们更好地开掘自身的智慧,游戏就此进入了大众的视野,在人们的生活中有着重要的位置,已然变得必不可少。游戏产业推动高新技术不断升级,极大地促进了经济的增长,推动了“第四产业”的经济腾飞。坦克大战游戏是童年时期…

java大转盘抽奖概率算法_幸运大转盘抽奖 抽奖算法 程序实现逻辑

近期碰到的一个需求&#xff0c;实现一个类似大转盘抽奖的功能&#xff0c;需自定义奖项&#xff0c;各奖项中奖概率&#xff0c;当日抽奖最大次数&#xff0c;抽奖成本等。分享一个简单的java代码的实现的思路&#xff0c;有不足之处感谢各位指正。初步方法首先要定义几个奖品…

java开发银行柜员业务绩效考核系统

导读:当今社会己进入信息社会时代,信息己经受到社会的广泛关注,被看作社会和科学技术发展的三大支柱(材料、能源、信息)之一。信息是管理的基础,是进行决策的的基本依据。在一个组织里,信息己作为人力、物力、财力之外的第四种能源,占有重要的地位。然而,信息是一种非…

一文教你使用java开发一款坦克大战游戏

导读&#xff1a;随着人们对生活质量的要求一天比一天高&#xff0c;为了让人们更好地开掘自身的智慧&#xff0c;游戏就此进入了大众的视野&#xff0c;在人们的生活中有着重要的位置&#xff0c;已然变得必不可少。游戏产业推动高新技术不断升级&#xff0c;极大地促进了经济…

Java 8流中的常见SQL子句及其等效项

功能编程允许使用通用语言进行准声明性编程 。 通过使用功能强大的流畅API&#xff08;例如Java 8的Stream API &#xff09;或jOOλ的顺序Stream扩展Seq或更复杂的库&#xff08;例如javaslang或functionaljava&#xff09; &#xff0c;我们可以以一种非常简洁的方式来表示数…

混合使用Azure LB和ILB访问相同web服务(3)

接下来我们来配置Azure Load balancer&#xff0c;就是面向公网的负载均衡器&#xff1a; 1.在该测试中&#xff0c;为了保持内网访问和外网访问一样的体验&#xff0c;本地端口和public端口和ILB一样&#xff0c;同样是80&#xff1a; PS C:\> Get-AzureVM -ServiceName …

mysql日活统计函数_如何通过简化日活模型,预估一个产品的日活(DAU)?

本文笔者通过简化日活模型&#xff0c;粗略地估算出未来一段时间的产品日活规模。进而通过日活的规模&#xff0c;再去估算一些潜在收益&#xff0c;以及运营成本等等数据。这段时间&#xff0c;经常有人问到以下的问题&#xff1a;按照现在的推广和留存&#xff0c;我们在未来…

罐中研讨会:设置JBoss BPM Suite全天研讨会

是否在寻找一种简单的方法来宣传&#xff0c;展示或演示JBoss业务流程管理套件&#xff08;BPM Suite&#xff09;产品的入门难度&#xff1f; 别无所求&#xff0c;因为我们召集了这个研讨会&#xff0c;因此您可以围绕JBoss BPM Suite构建一个晚上&#xff0c;半天或全天的…

java实现影视创作论坛

导读:随着时代的发展,互联网的出现,给传统影视行业带来的最大便利就是,方便了影视从业人员以及爱好者的交流和互动,而为用户提供一个书写影评,阅读影评以及回复影评的平台,以影评为载体来使用户感受影评、解读影评的是互联网在传统影视行业下应运而生的产物。 所谓的影视…

一文教你使用java开发一款推箱子游戏

导读&#xff1a;社会在进步&#xff0c;人们生活质量也在日益提高。高强度的压力也接踵而来。社会中急需出现新的有效方式来缓解人们的压力。此次设计符合了社会需求&#xff0c;Java推箱子游戏可以让人们在闲暇之余&#xff0c;体验游戏的乐趣。具有操作简单,易于上手的特点。…

uiautomator的坑和AAPT命令方式启动一个应用程序

最近在使用UIautomator完成公司的一个主流程的自动化&#xff0c;因为不适用H5和IOS所以会放弃这个工具的使用&#xff0c;现在记录在使用uiautomator的一些问题&#xff1a; 案列1&#xff1a;使用命令去启动要运用的apk包 使用命令方式启动&#xff0c;可以使用SDK中自带的aa…