题意:给你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+记忆化搜索)的更多相关文章

  1. hdu-1142(记忆化搜索+dij)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1142 思路:1.不是求最短路径,而是求如果两个点A,B直接相连,且A到终点的距离大于B到终点的距离,求 ...

  2. HDU1142 (Dijkstra+记忆化搜索)

    A Walk Through the Forest Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Jav ...

  3. 动态规划——I 记忆化搜索

    Description Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Michael想知道 ...

  4. hdu1428(记忆化搜索)

    题意:“他考虑从A区域到B区域仅当存在一条从B到机房的路线比任何一条从A到机房的路线更近(否则可能永远都到不了机房了…”这句话一定要理解清楚.就是说,对于当前位置,如果下一个状态与终点的最短距离大于或 ...

  5. 洛谷3953 (NOIp2017) 逛公园——记忆化搜索+用栈判0环

    题目:https://www.luogu.org/problemnew/show/P3953 因为K只有50,所以想到用dp[ cr ][ j ]表示在点cr.比最短路多走了 j 的方案数.(看了TJ ...

  6. [ACM_动态规划] 数字三角形(数塔)_递推_记忆化搜索

    1.直接用递归函数计算状态转移方程,效率十分低下,可以考虑用递推方法,其实就是“正着推导,逆着计算” #include<iostream> #include<algorithm> ...

  7. 【BZOJ-3895】取石子 记忆化搜索 + 博弈

    3895: 取石子 Time Limit: 1 Sec  Memory Limit: 512 MBSubmit: 263  Solved: 127[Submit][Status][Discuss] D ...

  8. hdu3555 Bomb (记忆化搜索 数位DP)

    http://acm.hdu.edu.cn/showproblem.php?pid=3555 Bomb Time Limit: 2000/1000 MS (Java/Others)    Memory ...

  9. zoj 3644(dp + 记忆化搜索)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4834 思路:dp[i][j]表示当前节点在i,分数为j的路径条数,从 ...

随机推荐

  1. 如何设置ESXi中的虚拟机随主机一同启动?

    笔者新装了几台ESXi的主机, 其中一台上面运行着一台安装了vCenter的虚拟机.  笔者一路默认, 也没改什么设置. 在试图解决其他问题的过程中, 笔者重启了ESXi. 后来发现vCente登不进 ...

  2. EasyUI datagrid 明细表格中编辑框 事件绑定 及灵活计算 可根据此思路 扩展其他

    原创 : EasyUI datagrid 明细表格中编辑框 事件绑定 及灵活计算 可根据此思路 扩展其他 转载,请注明出处哦!谢谢! 原创 : EasyUI datagrid 明细表格中编辑框 事件绑 ...

  3. centos7 selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH

    1.查看安装的chrome浏览器版本 2.查看版本对应的驱动 https://sites.google.com/a/chromium.org/chromedriver/downloads 下载后拷贝到 ...

  4. 红帽RHOP 8 发布一条龙方案

    导读 日前,Canonical的Ubuntu在OpenStack的云系统方面处于业界领先地位.其他诸如IBM类顶级科技公司也有意加入OpenStack的混战,新的专用OpenStack公司(例如Mir ...

  5. Android四大基本组件之 Activity

    [Activity介绍] Activity 是用户接口程序,原则上它会提供给用户一个交互式的接口功能. 它是 android 应用程序的基本功能单元.Activity 本身是没有界面的.所以activ ...

  6. 我的GTD起步

    最初因为工作进程漫无目的的逛网页,私人生活也一团乱麻,无法做自己想要的事情,这才开始接触个人管理和时间管理. 慢慢的也开始建立一套自己的体系,但是和之前改变不是很大,后来看了<小强升职记> ...

  7. How to change in the Cocos2d-x project from landscape to portrait both in iOS and Android

    iOS: This is done using XCode project details (select the required orientation) Android: AndroidMani ...

  8. [置顶] 安卓弹出ProgressDialog进度框之后触摸屏幕就消失了的解决方法

    安卓在4.0之前对话框都是模态的,之后就改成非模态了. 解决方法吗,使用progressdialog.setCancelable(false)也行,但是这样就不能响应返回键的事件了,最好的方法是调用p ...

  9. 在div 底部显示背景图片

    下面代码实现div层背景图片在底部显示: div { background : url (/images/bg.jpg) no-repeat fixed ; background-position-y ...

  10. PotPlayer 如何设置多屏幕全屏播放

      如何在播放器中,设置扩展播放模式? 全屏设置/主全屏显示设备:Display2   如何使视频播放时,没有黑边并且全屏充满? 高宽比/处理方式:保持全屏宽高比   如果取消掉视频上方的文字提示信息 ...