HDU 1142 A Walk Through the Forest(最短路+记忆化搜索)
A Walk Through the Forest
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 10172 Accepted Submission(s): 3701
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.
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
4
- #include<iostream>
- #include<stdio.h>
- #include<memory.h>
- using namespace std;
- #define max_v 1005
- #define INF 9999999
- int n,m;
- int vis[max_v];
- int dis[max_v];
- int e[max_v][max_v];
- int dp[max_v];
- void init()
- {
- memset(vis,,sizeof(vis));
- for(int i=;i<=n;i++)
- {
- for(int j=;j<=n;j++)
- {
- e[i][j]=INF;
- }
- dp[i]=-;
- dis[i]=INF;
- }
- }
- void Dijkstra(int s)
- {
- for(int i=;i<=n;i++)
- dis[i]=e[s][i];
- dis[s]=;
- for(int i=;i<=n;i++)
- {
- int index,mindis=INF;
- for(int j=;j<=n;j++)
- {
- if(!vis[j]&&dis[j]<mindis)
- {
- mindis=dis[j];
- index=j;
- }
- }
- vis[index]=;
- for(int j=;j<=n;j++)
- if(dis[index]+e[index][j]<dis[j])
- dis[j]=dis[index]+e[index][j];
- }
- }
- int dfs(int v)
- {
- if(dp[v]!=-)
- return dp[v];
- if(v==)
- return ;
- int sum=;
- for(int i=;i<=n;i++)
- if(dis[v]>dis[i]&&e[v][i]!=INF)
- sum+=dfs(i);
- dp[v]=sum;
- return dp[v];
- }
- int main()
- {
- while(~scanf("%d",&n))
- {
- if(!n)
- break;
- scanf("%d",&m);
- init();
- for(int i=;i<m;i++)
- {
- int x,y,z;
- scanf("%d %d %d",&x,&y,&z);
- if(e[x][y]>z)
- e[x][y]=e[y][x]=z;
- }
- Dijkstra();
- printf("%d\n",dfs());
- }
- return ;
- }
HDU 1142 A Walk Through the Forest(最短路+记忆化搜索)的更多相关文章
- HDU 1142 A Walk Through the Forest(SPFA+记忆化搜索DFS)
题目链接 题意 :办公室编号为1,家编号为2,问从办公室到家有多少条路径,当然路径要短,从A走到B的条件是,A到家比B到家要远,所以可以从A走向B . 思路 : 先以终点为起点求最短路,然后记忆化搜索 ...
- A Walk Through the Forest (最短路+记忆化搜索)
Jimmy experiences a lot of stress at work these days, especially since his accident made working dif ...
- hdu 1428(很好的一道题,最短路+记忆化搜索)
漫步校园 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- UVa10917 A Walk Through the Forest(SPFA+记忆化搜索)
题目给一张有向图,问从起点1到终点2沿着合法的路走有种走法,合法的路指从u到v的路,v到终点的距离严格小于u到终点的距离. 先SPFA预处理出所有合法的路,然后这些路肯定形成一个DAG,然后DP一下就 ...
- HDU 1142 A Walk Through the Forest (记忆化搜索 最短路)
A Walk Through the Forest Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Jav ...
- 题解报告:hdu 1142 A Walk Through the Forest
题目链接:acm.hdu.edu.cn/showproblem.php?pid=1142 Problem Description Jimmy experiences a lot of stress a ...
- UVA - 10917 - Walk Through the Forest(最短路+记忆化搜索)
Problem UVA - 10917 - Walk Through the Forest Time Limit: 3000 mSec Problem Description Jimmy exp ...
- HDU 1142 A Walk Through the Forest (求最短路条数)
A Walk Through the Forest 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1142 Description Jimmy exp ...
- hdu 1142 A Walk Through the Forest
http://acm.hdu.edu.cn/showproblem.php?pid=1142 这道题是spfa求最短路,然后dfs()求路径数. #include <cstdio> #in ...
随机推荐
- HDU 4489(DP)
http://acm.hdu.edu.cn/showproblem.php?pid=4489 解题思路这里已经说的很清楚了: http://blog.csdn.net/bossup/article/d ...
- Java与C++区别:重载(Overloading)
Java中一个类的函数重载可以在本类中的函数和来自父类中的函数之间进行,而C++类中的函数重载只能是本类中的(即不包括来自父类的函数),这是他们一个非常重要的区别.在其他方面的要求都是一致的,即要求函 ...
- Excel Metadata
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- BZOJ 3809Gty的二逼妹子序列 解题报告+data marker
--BZOJ http://www.lydsy.com/JudgeOnline/problem.php?id=3809 考虑对l,r跑莫队,对一组维护美丽度出现次数的桶修改, 然后把桶序列用分块维护查 ...
- SEO之网站被惩罚
- js array copy method
//浅拷贝: let arr=[1,2,3,4] let arr2=arr arr[3]=0 console.log(arr,arr2) //output: (4) [1, 2, 3, 0] (4) ...
- PHP学习笔记(二) ---- PHP数据类型
PHP __数据结构类型 一.php 中的八种数据类型 1.四种标量类型 Boolean (布尔类型): true or false,多用于条件判断. 实例: <?php $x = &qu ...
- jQuery瀑布流+无限加载图片
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- win7 远程连接服务器出现身份验证错误,且找不到加密Oracle修正
用远程桌面连接登录服务器,结果,弹出一个错误的提示框:发生身份验证错误,要求的函数不受支持. 然后在网上找了相关的教程,基本上所有的方法都是如下所示: 策略路径:"计算机配置"-& ...
- ESP8266调试记录
1.引脚图:使用STM32F103ZET6芯片的串口1 PA9-TX //PA10-RX(该串口挂载到APB2总线时钟)然后分别连接模块的RX和TX,供电使用3.3v(供电一定要稳)但不能超过5v ...