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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java uniqueresult_关于query.uniqueResult报错问题

    java uniqueresult_关于query.uniqueResult报错问题publicfloatcountmonthmoney(Longblogid){java.text.SimpleDateFormatsf=newjava.text.SimpleDateFormat(“yyyyMM”);Stringtoday=sf.format(newjava.util.Date());StringBuilderstring…publicfloatcountmonthmone…

    2022年9月30日
    2
  • latex 包含的符号_LaTeX大括号

    latex 包含的符号_LaTeX大括号参考:"LaTex使用特殊章节符号(§)"LaTex使用特殊章节符号(§)在文件开头,加上以下内容:并在通过以下命令引用章节(section

    2022年8月4日
    4
  • phpstorm 2021最新激活码_通用破解码

    phpstorm 2021最新激活码_通用破解码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月17日
    201
  • 从零开始学习UCOSII操作系统13–系统移植理论篇「建议收藏」

    从零开始学习UCOSII操作系统13–系统移植理论篇「建议收藏」从零开始学习UCOSII操作系统13–系统移植理论篇1、什么是系统移植?(1)UCOSII移植到不同的处理器上,所谓的移植就是将一个实时的内核能在其他的微处理器或者微控制器上运行。为了方便移植,UCOSII的大部分的代码都是C语言写的,因为不同机器的汇编代码是不一样的。这是由于UCOSII在设计的时候已经充分考虑到了可移植性这一点。但是仍然有一部分的代码是需要用C语言

    2022年5月4日
    40
  • 两款实用的DDos攻击工具[通俗易懂]

    两款实用的DDos攻击工具[通俗易懂]两款实用的DDos攻击工具2018-02-22Network•Security865之前为了重现某个bug,需要对网络设备进行ddos攻击测试,同时也是对设备的网络攻击防护功能进行抗压测试。临阵磨枪,google了两款攻击工具,windows平台的hyenae,以及Linux平台的hping3,在此记录一下两者的用法。Hyenaehyenae是在Windows平台上非常好用的一…

    2022年7月27日
    37
  • win10 禁止自动更新(修改注册表)

    win10 禁止自动更新(修改注册表)参考:https://blog.csdn.net/qq_40833810/article/details/89045074?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task第一步:按win+R,输入regedit,回车打开注册表编辑器,…

    2022年5月5日
    122

发表回复

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

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