HDU-1102-Constructing Roads(并查集)
题目链接
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(并查集)相关推荐
- HDU 2473 Junk-Mail Filter(并查集的删除操作)
题目地址:HDU 2473 这题曾经碰到过,没做出来. .如今又做了做,还是没做出来. ... 这题涉及到并查集的删除操作.想到了设一个虚节点,可是我把虚节点设为了要删除的点的父节点.一直是栈溢出,目 ...
- hdu 3018 图 欧拉回路 并查集
http://acm.hdu.edu.cn/showproblem.php?pid=3018 题意 --许多蚂蚁 遍历一个图 每一条边只能走一次 问至少要把这些蚂蚁分为几群 说白了就是 至少几笔可 ...
- HDU 4775 Infinite Go 并查集
题目链接:Infinite Go Infinite Go Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ( ...
- hdu 1811(拓扑排序+并查集)
解题思路: 拓扑排序的两个性质: ①如果一次入队入度为零的点大于1则说明拓扑排序序列不唯一 ②如果排序的总个数小于给定的个数,则说明存在回路 可以先把"="的两个数用并查集放在一个 ...
- hdu 1558(线段相交+并查集)
题意:给你一些操作,P后边输入四个值,分别代表一条线段的起点.终点坐标,当输入Q时,后边输入一个整形值K,输出第k条线段所在的集合中包含的线段的个数. 解题思路:线段相交+并查集,sum[i]表示i所 ...
- hdu 1811Rank of Tetris (并查集 + 拓扑排序)
1 /* 2 题意:这些信息可能有三种情况,分别是"A > B","A = B","A < B",分别表示A的Rating高于B ...
- hdu 3635 Dragon Balls 并查集应用记录每个点的转移次数
题意: 有n个龙珠,分别存放在编号为1-n的城市里面.然后进行如下操作,T,a,b将a龙珠所在城市的所有龙珠都转移到b龙珠所在的城市,Q,a输出a龙珠所在的城市,以及该城市一共有多少个龙珠,同时输出该 ...
- hdu 1025 Constructing Roads In JGShining's Kingdom(DP + 二分)
此博客为转发 Constructing Roads In JGShining's Kingdom Time Limit: 2000/1000 MS (Java/Others) Memory Li ...
- 【畅通工程 HDU - 1232 】【并查集模板题】
并查集讲解和模板 有一个博文对此分析的很透彻,附链接 为避免原链接失效,现摘录如下: 为了解释并查集的原理,我将举一个更有爱的例子. 话说江湖上散落着各式各样的大侠,有上千个之多.他们没有什么正当职业 ...
- HDU 3047 带权并查集
点击打开链接 题意:给了n个人和m个关系,关系为a,b,x,意思是b的位置大于a的位置x,问条件依次下去的矛盾的条件的个数 思路:第一个带权的并查集,倒不是很难,它的算法思想非常给力,若两个不再同一集 ...
最新文章
- Python案例:使用BeautifuSoup4的爬虫
- 用keil怎么擦除_用这种方法销毁硬盘数据,即使美国中央情报局也难以恢复
- SpringBoot非官方教程 | 第八篇:SpringBoot整合mongodb
- Flutter开发之搭建Flutter开发环境(三)
- 2019-11-18 自动控制原理的几个基本概念
- Study 1 —— HTML5概述
- 【IT资讯】阿里新推出“阿里云网盘” 速度10MBs,百度网盘或迎来最强对手!
- 【Flink】FLink Barrier 在流经算子 做 checkpoint 的时候,数据是停止的吗?
- Spring全家桶,永远滴神!
- linux php7 composer,Linux 系统 Composer 安装
- 财险产保险公司应用系统各子系统简介
- 基于php的超市仓库管理系统
- MySQL聚集索引和非聚集索引
- 面试软件测试总结(常见的面试问题)
- 台式计算机关机后自行重启,台式电脑关机后自动重启该怎么解决
- VB中九九乘法表的实现
- KOF97判定框查看方法
- Java使用BufferedImage裁剪图片
- 计算机教案画圆形和方形,小学信息《画方形和圆形》教学设计
- AJAX处理返回的XML字符串
热门文章
- mac地址转换_mac电脑格式转化工具
- 北京师范大学新生入学计算机考试内容,北京师范大学
- 软件测试msf模型,Visual Studio 2010 Ultimate中MSF过程模型的设计
- ueditor工具栏弹出html,UEditor工具栏上自定义按钮、图标、事件、窗口页面
- cmd如何默认以管理身份运行
- linux 终端 朗读,使Linux终端朗读文字的小技巧分享
- textcnn文本词向量_文本分类模型之TextCNN
- Java连接数据库所遇到的坑,连接数据库,遇到一个很奇怪的问题……
- 博弈论 —— matlab
- Python实例 61,62