hdu1142(dj+记忆化搜索)
题意:给你n各点,m行关于这些点的联通关系,以及距离,求从1这个点到2这个点之间,下一个点到2这个点比当前点到2这个点的距离要小的路径的条数......
思路:dj+记忆化搜索.......
#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
typedef __int64 ss;
#define max 1010
#define p 10000000
ss a[max][max];
ss n,m;
ss dp[max],dist[max];
void dj(ss n,ss v,ss v1)
{
ss i,j,k,min;
ss s[max];
for(i=1;i<=n;i++)
{
dist[i]=a[v][i];
s[i]=0;
}
s[v]=1;
for(i=2;i<=n;i++)
{
min=p;
k=1;
for(j=1;j<=n;j++)
if(s[j]==0&&dist[j]<min)
{
k=j;
min=dist[j];
}
s[k]=1;
for(j=1;j<=n;j++)
if(s[j]==0)
if(a[k][j]<p&&dist[k]+a[k][j]<dist[j])
dist[j]=dist[k]+a[k][j];
}
}
ss dfs(ss num)
{
if(dp[num]) return dp[num];
if(num==2) return 1;
ss sum=0;
for(ss i=1;i<=n;i++)
{
if(i==num)
continue;
if(a[num][i]!=p&&dist[num]>dist[i])
{
sum+=dfs(i);
}
}
dp[num]=sum;
return dp[num];
}
int main()
{
while(scanf("%I64d",&n)>0&&n)
{
scanf("%I64d",&m);
for(ss i=0;i<=n;i++)
for(ss j=0;j<=n;j++)
a[i][j]=p;
for(ss i=0;i<=n;i++)
a[i][i]=0;
for(ss i=1;i<=m;i++)
{
ss tmp,x,y;
scanf("%I64d%I64d%I64d",&x,&y,&tmp);
if(a[x][y]>tmp)
{
a[x][y]=a[y][x]=tmp;
}
}
dj(n,2,1);
//for(int i=1;i<=n;i++)
//printf("%I64d\n",dist[i]);
memset(dp,0,sizeof(dp));
printf("%I64d\n",dfs(1));
}
return 0;
}
hdu1142(dj+记忆化搜索)的更多相关文章
- hdu-1142(记忆化搜索+dij)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1142 思路:1.不是求最短路径,而是求如果两个点A,B直接相连,且A到终点的距离大于B到终点的距离,求 ...
- HDU1142 (Dijkstra+记忆化搜索)
A Walk Through the Forest Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Jav ...
- 动态规划——I 记忆化搜索
Description Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Michael想知道 ...
- hdu1428(记忆化搜索)
题意:“他考虑从A区域到B区域仅当存在一条从B到机房的路线比任何一条从A到机房的路线更近(否则可能永远都到不了机房了…”这句话一定要理解清楚.就是说,对于当前位置,如果下一个状态与终点的最短距离大于或 ...
- 洛谷3953 (NOIp2017) 逛公园——记忆化搜索+用栈判0环
题目:https://www.luogu.org/problemnew/show/P3953 因为K只有50,所以想到用dp[ cr ][ j ]表示在点cr.比最短路多走了 j 的方案数.(看了TJ ...
- [ACM_动态规划] 数字三角形(数塔)_递推_记忆化搜索
1.直接用递归函数计算状态转移方程,效率十分低下,可以考虑用递推方法,其实就是“正着推导,逆着计算” #include<iostream> #include<algorithm> ...
- 【BZOJ-3895】取石子 记忆化搜索 + 博弈
3895: 取石子 Time Limit: 1 Sec Memory Limit: 512 MBSubmit: 263 Solved: 127[Submit][Status][Discuss] D ...
- hdu3555 Bomb (记忆化搜索 数位DP)
http://acm.hdu.edu.cn/showproblem.php?pid=3555 Bomb Time Limit: 2000/1000 MS (Java/Others) Memory ...
- zoj 3644(dp + 记忆化搜索)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4834 思路:dp[i][j]表示当前节点在i,分数为j的路径条数,从 ...
随机推荐
- Yii学习笔记之二(使用gii生成一个简单的样例)
1. 数据库准备 (1) 首先我们建一数据库 yii2test 并建立一张表例如以下: DROP TABLE IF EXISTS `posts`; CREATE TABLE `posts` ( `po ...
- [Algorithm] Array production problem
Given an array of integers, return a new array such that each element at index i of the new array is ...
- linux CentOS6.5 yum安装mysql 5.6(转载&删改)
按:下面文章经过我一路测试没有问题,是篇好文,在此感谢作者 别踩我袈裟 .另因原文有些啰嗦,我自己有所删改,并尾后增加了一大段. 出处:https://www.cnblogs.com/renjido ...
- UML 之 用例图
用例图是指由参与者(Actor).用例(Use Case)以及它们之间的关系构成的用于描述系统功能的静态视图.用例图(User Case)是被称为参与者的外部用户所能观察到的系统功能的模型图,呈现了一 ...
- BLDC之六种霍尔检测换相排序表
/* 1 BLDC 的六种霍尔换相排列表 2 包含正反转 */ //#define BLDC_HALL_CAB //-- //#define BLDC_HALL_CBA //#define BLDC_ ...
- 14条最佳JS代码编写技巧
http://gaohaixian.blog.163.com/blog/static/123260105201142645458315/写任何编程代码,不同的开发者都会有不同的见解.但参考一下总是好的 ...
- 工作总结 @{var sas = String.Format("{0:yyyy-MM-dd}", Model.DemandTime.GetValueOrDefault());}
可空DateTime类型 无法Tostring 或者 格式化时间格式 需要转换 为DateTime Nullable<T>.GetValueOrDefault() 方法 返回对应的 ...
- Windows下Python添加库(模块)路径
动态的添加库路径.在程序运行过程中修改sys.path的值,添加自己的库路径 import syssys.path.append(r'your_path') 在Python安装目录下的\Lib\sit ...
- javascript异步代码的回调地狱以及JQuery.deferred提供的promise解决方式
我们先来看一下编写AJAX编码常常遇到的几个问题: 1.因为AJAX是异步的,全部依赖AJAX返回结果的代码必需写在AJAX回调函数中.这就不可避免地形成了嵌套.ajax等异步操作越多,嵌套层次就会越 ...
- querySelector与getElementBy等的区别
获取元素DOM对象有很多种方法,以前一直在用getElementById和getElementsByTagName等,现在对这些方法和querySelector做一个总结. 常见的获取元素的方法有3种 ...