hdu 1142_hdu1001

hdu 1142_hdu1001【最短路问题】第一道最短路问题+DFS各种WARE还是在参照大神的代码的情况下 http://acm.hdu.edu.cn/showproblem.php?pid=1142只是照搬自己熟悉下过程dijkstra+dfs#include<cstdio>#include<cstring>#defineINF2000000000#defineN101…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

【最短路问题】

第一道 最短路问题+DFS 各种WA RE 还是在参照大神的代码的情况下

 

http://acm.hdu.edu.cn/showproblem.php?pid=1142

只是照搬 自己熟悉下过程 dijkstra+dfs

#include <cstdio>
#include <cstring>
#define INF 2000000000
#define N 1010
using namespace std;

int map[N][N],lowcost[N],visited[N],d[N],p[N];

void dijkstra(int s,int n)
{
    int i,j,k,min;
    memset(visited,0,sizeof(visited));

    for(i=1;i<=n;i++)
    {
        lowcost[i]=map[s][i];
    }
    d[s]=0;visited[s]=1;
    for(i=1;i<n;i++)
    {
        min=INF;k=i;
        for(j=1;j<=n;j++)
        {
            if(!visited[j]&&min>lowcost[j])
            {
                min=lowcost[j];
                k=j;
            }
        }
        d[k]=min;visited[k]=1;
        for(j=1;j<=n;j++)
        {
            if(!visited[j]&&lowcost[j]>d[k]+map[k][j]) //visited[j] 错误写成visited
            {                                       // d[k]+map[k][j] 会 ACCESS_VIOLATION
                lowcost[j]=d[k]+map[k][j];
            }

        }
    }

}
int DFS(int s,int n)
{
    if(p[s]) return p[s];
    if(s==2) return 1;
    int i,sum;
    sum=0;

    for(i=1;i<=n;i++)
    {
        if(map[s][i]<INF&&d[s]>d[i])
        {
            if(p[i]) sum+=p[i];
            else sum+=DFS(i,n);
        }
    }
    sum=sum+p[s];
    p[s]=sum;
    return p[s];
}
int main()
{
    int i,j,n,m,t1,t2,w;
    while(scanf("%d",&n),n)
    {
        scanf("%d",&m);
        memset(p,0,sizeof(p));
        for(i=1;i<=n;i++)
        {
            for(j=1;j<=n;j++)
            {
                map[i][j]=(i==j?0:INF);
            }
        }
        for(i=1;i<=m;i++)
        {
            scanf("%d%d%d",&t1,&t2,&w);
            map[t1][t2]=map[t2][t1]=w;
        }
        dijkstra(2,n);
        printf("%d\n",DFS(1,n));
    }
    return 0;
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/187133.html原文链接:https://javaforall.net

(0)
上一篇 2022年10月1日 下午1:16
下一篇 2022年10月1日 下午1:16


相关推荐

  • Python打开文件/文件夹/路径/目录

    Python打开文件/文件夹/路径/目录用 python 的方式来打开一个文件夹 文件 路径 目录 效果和鼠标双击打开一个文件 文件夹一样 支持在 window 系统和 mac 系统 代码简约 输入参数少 复制粘贴即可放心食用

    2026年3月26日
    2
  • eclipse搭建Android运行模拟器「建议收藏」

    eclipse搭建Android运行模拟器「建议收藏」首先要声明的是,其实下面这些都不用学,安装包可以网上下载一个全一点的sdk,直接打开sdk文件夹-eclipse-模拟器就行了,下面这些是为了练手。基本流程:JDK的安装和环境变量的设置\安装Eclipse\为Eclipse安装ADT插件(Help->InstallNewSoftware–Add )\Eclipse安装sdk(eclipse-windows-preferences),

    2026年4月16日
    5
  • 深入学习AI Agent:6张图彻底看懂OpenManus,附从0入门教程

    深入学习AI Agent:6张图彻底看懂OpenManus,附从0入门教程

    2026年3月15日
    4
  • 茅台抢购脚本详细教程, 另已将茅台抢购做成了一个软件

    今天对软件进行了升级,公众号上重新回复茅台获取最新软件!!最新软件解压后如图!以管理员方式运行main.exe软件最后抢购成功是不会主动付款的,要自己去APP支付注意使用茅台软件版抢购的朋友需要自己先去app上预约抢购!!!预约完之后,运行软件,输入2按回车键!,等待到指定时间开始抢购!!!别再问我为什么没动了!因为还没到抢购时间!!别再问我为什么没动了!因为还没到抢购时间!!别再问我为什么没动了!因为还没到抢购时间!!文章上有详细说明的,就不要再问我了!!看文章就对了,问我也

    2022年4月6日
    2.9K
  • repos_there are no enabled repos

    repos_there are no enabled repos配置Base源,使用163或者阿里的1、mirrors.163.com/2、mirrors.aliyun.com/or https://developer.aliyun.com/mir

    2022年8月4日
    9
  • pycharm使用qtdesigner

    pycharm使用qtdesigner1 第一步 pycharm 联合 anaconda 安装 2 安装 PyQt5 和 PyQt tools 在这里 PyQt tools 无法直接从 anaconda 环境中安装 且不加 user 会出现报错 pipinstallus tools ihttps pypi douban com simple 在 file 里的 setting 打开 externaltool 加工具添加 qtdesi

    2026年3月27日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号