题目链接

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

这题大意就不讲了,

这题很容易,不过我做的很不爽,一个下午,一直WA,后来才发现数组开小了

只开了s[6000],本来100*100=10000,要开至少10000的搞糊了,一直WA

一个下午,以后做题,要把思路全部理清才开始敲代码,别边想边敲,那样,很容易搞错

我的代码

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;

struct node
{
int x,y,d;
}s[10005];

int father[111];
int sum;

bool cmp(const node &a,const node &b)
{
return a.d<b.d;
}

int Find(int x)
{
if(x==father[x]) return x;
father[x]=Find(father[x]);
return father[x];
}

void Union(int x,int y,int d)
{
x=Find(x);
y=Find(y);
if(x!=y)
{
father[x]=y;
sum=sum+d;
}
}

int main(void)
{
int n,m,i,j,k,l;
while(scanf("%d",&n)==1)
{
l=0;
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
s[l].x=i;
s[l].y=j;
scanf("%d",&s[l].d);
l++;
}
}
int q,x,y;
scanf("%d",&q);
for(i=1;i<=q;i++)
{
scanf("%d%d",&x,&y);
s[(x-1)*n+y-1].d=0;
s[(y-1)*n+x-1].d=0;
}
sort(s,s+l,cmp);
for(i=1;i<=n;i++)
father[i]=i;
sum=0;
for(i=0;i<l;i++)
{
Union(s[i].x,s[i].y,s[i].d);
}
k=0;
for(i=0;i<=n;i++)
{
if(i==father[i])
k++;
}
if(k)
printf("%d\n",sum);
}
return 0;
}

转载于:https://www.cnblogs.com/liudehao/p/3940339.html

HDU-1102-Constructing Roads(并查集)相关推荐

  1. HDU 2473 Junk-Mail Filter(并查集的删除操作)

    题目地址:HDU 2473 这题曾经碰到过,没做出来. .如今又做了做,还是没做出来. ... 这题涉及到并查集的删除操作.想到了设一个虚节点,可是我把虚节点设为了要删除的点的父节点.一直是栈溢出,目 ...

  2. hdu 3018 图 欧拉回路 并查集

    http://acm.hdu.edu.cn/showproblem.php?pid=3018 题意  --许多蚂蚁 遍历一个图 每一条边只能走一次  问至少要把这些蚂蚁分为几群 说白了就是 至少几笔可 ...

  3. HDU 4775 Infinite Go 并查集

    题目链接:Infinite Go Infinite Go Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K ( ...

  4. hdu 1811(拓扑排序+并查集)

    解题思路: 拓扑排序的两个性质: ①如果一次入队入度为零的点大于1则说明拓扑排序序列不唯一 ②如果排序的总个数小于给定的个数,则说明存在回路 可以先把"="的两个数用并查集放在一个 ...

  5. hdu 1558(线段相交+并查集)

    题意:给你一些操作,P后边输入四个值,分别代表一条线段的起点.终点坐标,当输入Q时,后边输入一个整形值K,输出第k条线段所在的集合中包含的线段的个数. 解题思路:线段相交+并查集,sum[i]表示i所 ...

  6. hdu 1811Rank of Tetris (并查集 + 拓扑排序)

    1 /* 2 题意:这些信息可能有三种情况,分别是"A > B","A = B","A < B",分别表示A的Rating高于B ...

  7. hdu 3635 Dragon Balls 并查集应用记录每个点的转移次数

    题意: 有n个龙珠,分别存放在编号为1-n的城市里面.然后进行如下操作,T,a,b将a龙珠所在城市的所有龙珠都转移到b龙珠所在的城市,Q,a输出a龙珠所在的城市,以及该城市一共有多少个龙珠,同时输出该 ...

  8. hdu 1025 Constructing Roads In JGShining's Kingdom(DP + 二分)

    此博客为转发 Constructing Roads In JGShining's Kingdom Time Limit: 2000/1000 MS (Java/Others)    Memory Li ...

  9. 【畅通工程 HDU - 1232 】【并查集模板题】

    并查集讲解和模板 有一个博文对此分析的很透彻,附链接 为避免原链接失效,现摘录如下: 为了解释并查集的原理,我将举一个更有爱的例子. 话说江湖上散落着各式各样的大侠,有上千个之多.他们没有什么正当职业 ...

  10. HDU 3047 带权并查集

    点击打开链接 题意:给了n个人和m个关系,关系为a,b,x,意思是b的位置大于a的位置x,问条件依次下去的矛盾的条件的个数 思路:第一个带权的并查集,倒不是很难,它的算法思想非常给力,若两个不再同一集 ...

最新文章

  1. Python案例:使用BeautifuSoup4的爬虫
  2. 用keil怎么擦除_用这种方法销毁硬盘数据,即使美国中央情报局也难以恢复
  3. SpringBoot非官方教程 | 第八篇:SpringBoot整合mongodb
  4. Flutter开发之搭建Flutter开发环境(三)
  5. 2019-11-18 自动控制原理的几个基本概念
  6. Study 1 —— HTML5概述
  7. 【IT资讯】阿里新推出“阿里云网盘” 速度10MBs,百度网盘或迎来最强对手!
  8. 【Flink】FLink Barrier 在流经算子 做 checkpoint 的时候,数据是停止的吗?
  9. Spring全家桶,永远滴神!
  10. linux php7 composer,Linux 系统 Composer 安装
  11. 财险产保险公司应用系统各子系统简介
  12. 基于php的超市仓库管理系统
  13. MySQL聚集索引和非聚集索引
  14. 面试软件测试总结(常见的面试问题)
  15. 台式计算机关机后自行重启,台式电脑关机后自动重启该怎么解决
  16. VB中九九乘法表的实现
  17. KOF97判定框查看方法
  18. Java使用BufferedImage裁剪图片
  19. 计算机教案画圆形和方形,小学信息《画方形和圆形》教学设计
  20. AJAX处理返回的XML字符串

热门文章

  1. mac地址转换_mac电脑格式转化工具
  2. 北京师范大学新生入学计算机考试内容,北京师范大学
  3. 软件测试msf模型,Visual Studio 2010 Ultimate中MSF过程模型的设计
  4. ueditor工具栏弹出html,UEditor工具栏上自定义按钮、图标、事件、窗口页面
  5. cmd如何默认以管理身份运行
  6. linux 终端 朗读,使Linux终端朗读文字的小技巧分享
  7. textcnn文本词向量_文本分类模型之TextCNN
  8. Java连接数据库所遇到的坑,连接数据库,遇到一个很奇怪的问题……
  9. 博弈论 —— matlab
  10. Python实例 61,62