TOJ 4117 Happy tree friends

原创 2015年07月08日 15:35:23

It's a problem of minimum spanning tree,I think it a directed graph that have differences with undirected graph .But it's complete graph.It none of directed business.Use kruskal algorithm to solve this problem.

The portal:http://acm.tju.edu.cn/toj/showp4117.html

#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cstring>
#include <algorithm>

using namespace std;

struct Edge{
    int x,y,cap;
};

int bin[105];
Edge edge[10005];
int fee[105][105];
int ans;

int findx(int x){
    if(x != bin[x])
        bin[x] = findx(bin[x]);
    return bin[x];
}

int merge_(int x,int y){
    int fx = findx(x);
    int fy = findx(y);
    if(fx == fy) return 1;
    bin[fy] = fx;
    return 0;
}

int cmp(const void * a1,const void * a2){
    struct Edge p1 = *(struct Edge *)a1;
    struct Edge p2 = *(struct Edge *)a2;
    return p1.cap - p2.cap;
}

void Deal_with(){
    int n;
    while(~scanf("%d",&n)){
        int tempa,cnt = 0;
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++){
                scanf("%d",&tempa);
                fee[i][j] = tempa;
                if(i == j)continue;
                edge[cnt].x = i;
                edge[cnt].y = j;
                edge[cnt].cap = tempa;
                cnt ++;
            }
        }
        int u,v;
        scanf("%d %d",&u,&v);
        for(int i=1;i<=100;i++){
            bin[i] = i;
        }
        qsort(edge,cnt,12,cmp);
        merge_(u,v);
        ans = fee[u][v];
        for(int i=0;i<cnt;i++){
            //printf("%d %d %d\n",edge[i].x,edge[i].y,edge[i].cap);
            if(merge_(edge[i].x,edge[i].y)){
                continue;
            }
            else{
                ans += edge[i].cap;
            }
        }
        printf("%d\n",ans);
    }
}

int main(void){
    //freopen("a.in","r",stdin);
    Deal_with();
    return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

戴尔-卡耐基:《人性的弱点 How to Win Friends And Influence People》总结

戴尔-卡耐基:人性的弱点 How to Win Friends And Influence People this is an action book 第一篇 待人接物(为人处世)的基本技...
  • ajian005
  • ajian005
  • 2016年02月07日 18:10
  • 4462

Fliptile POJ3279 二进制压缩枚举 解题报告

D - Fliptile Time Limit:2000MS    Memory Limit:65536KB    64bit IO Format:%I64d & %I64u SubmitS...
  • wr132
  • wr132
  • 2015年04月24日 19:27
  • 1282

大数据/数据挖掘/推荐系统/机器学习相关资源

书籍 各种书~各种ppt~更新中~ http://pan.baidu.com/s/1EaLnZ 机器学习经典书籍小结 http://www.cnblogs.com/snake-ha...
  • bff1022
  • bff1022
  • 2015年12月28日 13:55
  • 1208

TJU-4117 Happy tree friends(最小生成树)

题目貌似出的有点问题,考试的时候理解有点偏差。题干里说的是无向边,然而样例里Wij != Wji。晕了。以为是最小树形图。 最后和AC同学打听了一下,直接按无向边做就好了,其余的不用管。还有一定要加...
  • moringrain
  • moringrain
  • 2015年07月08日 14:09
  • 258

happy tree friends

  • 2010年05月09日 13:07
  • 974KB
  • 下载

happy tree friends

  • 2010年05月09日 13:11
  • 3.66MB
  • 下载

整数的因子和 ---TOJ 1089 Happy 2004

整数的因子和
  • u013652219
  • u013652219
  • 2015年03月14日 12:01
  • 749

动态规划——Happy Matt Friends

Matt has N friends. They are playing a game together.  Each of Matt’s friends has a magic number....
  • LSC_333
  • LSC_333
  • 2017年08月02日 18:45
  • 43

HDU 5119 Happy Matt Friends(动态规划)【状压基础类模板】

att has N friends. They are playing a game together. Each of Matt’s friends has a magic number. In...
  • qq_38538733
  • qq_38538733
  • 2017年07月15日 13:55
  • 93

B. Drazil and His Happy Friends

这是 Codeforces Round #292 (Div. 2)的一道题,原题在这里,题意就是: 小明有n个男同学(编号为 0 ~ n-1)和m个女同学 (编号为 0 ~ m-1),小明要安排男女...
  • kamsau
  • kamsau
  • 2015年02月22日 02:57
  • 1373
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:TOJ 4117 Happy tree friends
举报原因:
原因补充:

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