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,一经查实,立即删除!

相关文章

python定义区间[-5、5_有一个数 x 在区间 [-5,0] 内 , 写出其条件表达式 。 (5.0分)_学小易找答案...

【其它】2018应心ABC反应时任务实验数据.sav 请利用上面的实验数据文档,完成本次实验的报告撰写,并上传。 【单选题】“ab”+”c”*2 结果是: (3.0分) 【判断题】元组可以作为集合的元素。 (2.0分) 【判断题】函数中必须包含return语句。 (3.5分) 【判断题】加法运算符可以用来…

java实现愤怒的小鸟游戏

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

为什么应始终将连接池与Oracle XE一起使用

介绍 Oracle Express Edition是Oracle Enterprise Edition的免费版本&#xff0c;其较小的尺寸使其非常方便地测试各种Oracle功能。 根据Oracle文档 &#xff0c;Express Edition最多可以使用一个CPU和1 GB RAM&#xff0c;但是实际上存在其他限制并不总是很明显。 数据库连接…

异想维度 java_Java实现多字段(维度)复杂排序

//Java 实现多字段排序HashMap map1 new HashMap();map1.put("dataindex0", null);map1.put("dataindex1", 6);map1.put("dataindex2", 1.1);map1.put("id", 1);HashMap map2 new HashMap();map2.put("dataindex0", "…

Linux下mysql的root密码忘记解决方法

方法一&#xff1a; 1&#xff0e;首先确认服务器出于安全的状态&#xff0c;也就是没有人能够任意地连接MySQL数据库。 因为在重新设置MySQL的root密码的期间&#xff0c;MySQL数据库完全出于没有密码保护的 状态下&#xff0c;其他的用户也可以任意地登录和修改MySQL的信息…

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

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

java中大数开方_大数开方(Java版)

Java代码&#xff1a;适合被开方数不超过1000位的。import java.util.*;import java.math.*;public class Main{public static void main(String[] args){Scanner cinnew Scanner(System.in);int tcin.nextInt();BigInteger remainBigInteger.ZERO;BigInteger oddBigInteger.ZE…

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桌面应用程序和低端的服务器应用程序…

'mysql_attr_use_buffered_query'_php中mysql操作的buffer知识

php与mysql的连接有三种方式&#xff0c;mysql&#xff0c;mysqli&#xff0c;pdo。不管使用哪种方式进行连接&#xff0c;都有使用buffer和不使用buffer的区别。什么叫使用buffer和不使用buffer呢&#xff1f;客户端与mysql服务端进行查询操作&#xff0c;查询操作的时候如果获…

java开发一款雷电游戏

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

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

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

java开发一个连连看小游戏

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

将java.util.concurrent.BlockingQueue用作rx.Observable

在Java中&#xff0c;经典的生产者&#xff0d;消费者模式相对简单&#xff0c;因为我们有java.util.concurrent.BlockingQueue 。 为了避免繁忙的等待和容易出错的手动锁定&#xff0c;我们只需利用put()和take() 。 如果队列已满或为空&#xff0c;它们都将阻塞。 我们需要的…

Mac OS X 10.10如何打开虚拟内存

转载请注明出处&#xff1a;http://www.cnblogs.com/blazer/p/5103608.html 禁用虚拟内存sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist删除交换文件sudo rm /private/var/vm/swapfile*启用虚拟内存sudo launchctl load -w /System/L…

java 1.5.0 gcj_CentOS安装JAVA后JAVA版本不对的问题

今天用CentOS安装JDK&#xff0c;发觉在安装完成后&#xff0c;输入java命令来验证是否安装成功时&#xff0c;出现Usage: gij [OPTION] ... CLASS [ARGS] ...to invoke CLASS.main, orgij -jar [OPTION] ... JARFILE [ARGS] ...to execute a jar fileTry gij --help‘ for mor…

java开发一款模拟写字板系统

导读:目前,很多新的技术领域都涉及到了Java语言,Java语言是面向对象编程,并且涉及到网络、多线程等重要的基础知识,因此Java语言也是学习面向对象编程和网络编程的首选语言。此简易JAVA写字板程序,使用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。 以下博客文章总结了当您考虑这些技术堆…