zoukankan      html  css  js  c++  java
  • 【t058】拜年

    Time Limit: 1 second
    Memory Limit: 128 MB

    【问题描述】

    拜年是中国人少不了的风俗.还没过年呢,刚上小学的妮妮已经等不及要给她的小伙伴去拜年了,但是她不知道如何规划才会使自己走
    的路最少.所以请叫您咯,她不想落下任何一位伙伴.为了走少花精力,她想走最少的路程去所有伙伴的家里.您将得到一份各伙伴
    家路程的列表,您必须找出能走最少路程去所有小伙伴家的最少路程.
    补充:
    妮妮是从1号节点开始走的;
    妮妮可以在任意的时刻瞬移到之前走过的节点;(还没走过的不行);
    (总之,这道题就是想让你从1号节点开始跑一遍普利姆算法)
    (题目样例给你一种假象,这是一张无向图,但其实是有向图…,给的测试样例里面没有一个是无向图,全都和样例不一样…,即w[x][y]=w[y][x]不一定成立)

    【输入格式】

    输入文件第一行为妮妮小伙伴的个数,n(3<=n<=100)
    下面是一个n*n的矩阵,表示每个小伙伴家的距离d(d<=100000),可以保证所有小伙伴都相互认识。

    【输出格式】

    只有一个输出为要去所有小伙伴家要走的最少路程

    Sample Input

    4
    0 4 9 21
    4 0 8 17
    9 8 0 16
    21 17 16 0

    Sample Output

    28

    【题目链接】:http://noi.qz5z.com/viewtask.asp?id=t058

    【题解】

    很糟糕的题.
    补充:
    妮妮是从1号节点开始走的;
    妮妮可以在任意的时刻瞬移到之前走过的节点;(还没走过的不行);
    (题目样例给你一种假象,这是一张无向图,但其实是有向图…,给的测试样例里面没有一个是无向图,全都和样例不一样…,即w[x][y]=w[y][x]不一定成立)
    (总之,这道题就是想让你从1号节点开始跑一遍普利姆算法)
    这种题就当练手吧。别想了;

    【完整代码】

    #include <cstdio>
    #include <algorithm>
    #include <vector>
    using namespace std;
    #define rei(x) scanf("%d",&x)
    #define rep1(i,x,y) for (int i = x;i <= y;i++)
    
    const int MAXN = 100+10;
    int n,w[MAXN][MAXN],dis[MAXN];
    bool bo[MAXN];
    
    int main()
    {
        //freopen("F:\rush.txt","r",stdin);
        rei(n);
        rep1(i,1,n)
            rep1(j,1,n)
                rei(w[i][j]);
        rep1(i,1,n)
            dis[i] = 21e8;
        dis[1] = 0;
        while (true)
        {
            int mi = 21e8,j = -1;
            rep1(i,1,n)
                if (dis[i]<mi && !bo[i])
                {
                    mi = dis[i];
                    j = i;
                }
            if (j==-1)
                break;
            bo[j] = true;
            rep1(i,1,n)
                if (!bo[i] && w[j][i]>0 && w[j][i]<dis[i])
                    dis[i] = w[j][i];
        }
        int ans = 0;
        rep1(i,1,n)
            ans += dis[i];
        printf("%d
    ",ans);
        return 0;
    }
  • 相关阅读:
    规划
    学习规划
    续约
    每日一记
    每日记录
    《代码大全》第八章 防御式编程
    《代码大全》第七章
    平安夜
    每日一记
    培养良好的生活习惯
  • 原文地址:https://www.cnblogs.com/AWCXV/p/7626688.html
Copyright © 2011-2022 走看看