Constructing Roads POJ - 2421

原创 2018年04月17日 21:08:34

原oj网址点击打开链接

vj网址点击打开链接

这道题 是一个不择不扣的送分题 就是一个最小生成树 大意就是输入m个数  后面有m行 n行代表 1 -m n需要通过的数字  然后 接下来几行 代表一个双向图 (这个很重要,我们队因为这个还wa了一发)可以直接 来让他们等于0 然后输出 nn - mm的最小值    这个就很简单了 话不多说 直接上代码 

#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <math.h>
#include <string.h>
#include <queue>
#define inf 0x3f3f3f3f
using namespace std;
const int N=101;
int mapp[N][N],dis[N];
bool vis[N];
int n,q;
void prim()
{
    memset(dis,0x3f,sizeof(dis));
    memset(vis,false,sizeof(vis));
    dis[0]=0;
    int ans=0;
    for(int i=0;i<n;i++)
    {
        int u=-1,tmp=inf;
        for(int j=0;j<n;j++)
        {
            if(!vis[j]&&tmp>dis[j])
            {
                tmp=dis[j];
                u=j;
            }
        }
        vis[u]=true;
        ans+=dis[u];
        for(int j=0;j<n;j++)
        {
            if(!vis[j]&&mapp[u][j]!=inf&&mapp[u][j]<dis[j])
            {
                dis[j]=mapp[u][j];
            }
        }
    }
    printf("%d\n",ans);
}
int main()
{
    while(~scanf("%d",&n))
    {
        for(int i=0;i<n;i++)
            for(int j=0;j<n;j++)
                scanf("%d",&mapp[i][j]);
        scanf("%d",&q);
        int a,b;
        for(int i=0;i<q;i++)
        {
            scanf("%d%d",&a,&b);
            mapp[a-1][b-1]=0;
            mapp[b-1][a-1]=0;
        }
        prim();
    }
}

POJ-2421-Constructing Roads(最小生成树 普利姆)

D - Constructing Roads Time Limit:2000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u...
  • qq_32680617
  • qq_32680617
  • 2016-05-21 19:43:15
  • 458

poj2421Constructing Roads(最小生成树)

思路:一些已经连好的边添加一条权值为0的路,然后就是上模板了,又SB忘记init() #include #include #include #include #include #i...
  • qq_21057881
  • qq_21057881
  • 2016-01-31 23:16:29
  • 421

Constructing Roads poj

Description There are N villages, which are numbered from 1 to N, and you should build some roads...
  • clx55555
  • clx55555
  • 2016-09-02 11:06:39
  • 144

POj 2041 Constructing Roads

题目链接: http://poj.org/problem?id=2421 赤裸裸的最小生成树习题! #include #include using namespace std; const in...
  • lsgqjh
  • lsgqjh
  • 2015-05-29 12:42:58
  • 460

POJ:2421 Constructing Roads

与这个题基本一样。 http://blog.csdn.net/kkkwjx/article/details/12316701   最小生成树的题要搞清楚点的个数,边的个数,不要混了。   #...
  • kkkwjx
  • kkkwjx
  • 2013-10-06 13:10:13
  • 455

POJ 2421 Constructing Roads

Constructing Roads Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 2330...
  • qq_35776409
  • qq_35776409
  • 2017-03-17 16:20:33
  • 91

HDOJ 1102 Constructing Roads(最小生成树)

Constructing Roads Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Othe...
  • zwj1452267376
  • zwj1452267376
  • 2015-08-11 21:07:43
  • 662

【POJ】[2421]Constructing Roads

这题的难度在于 题目已经帮助连通了一些村庄 要求其余的 不过只要直接把对应的村庄距离更新为0就好了...
  • u011493189
  • u011493189
  • 2016-02-20 05:27:39
  • 152

POJ 2421 Constructing Roads

题目 输入邻接矩阵 再 输入 已连接的两个点 输出 最短路径   解析 可以将已连接的两个点的原路径长度 置为 0 再用prim算法求解  #include using name...
  • YYlxid
  • YYlxid
  • 2013-08-21 10:53:20
  • 456

POJ 2421 constructing roads

稍微改了一下的最小生成树。其实很简单,有路了就不用建造路了,直接把已经接通的公路的距离赋值为0,就好办了,接下来就是赤裸裸的prim算法。   #include #include using na...
  • zhuyongqingacm
  • zhuyongqingacm
  • 2013-04-29 20:55:24
  • 792
收藏助手
不良信息举报
您举报文章:Constructing Roads POJ - 2421
举报原因:
原因补充:

(最多只允许输入30个字)