hdu 1102 pku 2421 解题报告
2 #include<algorithm>
3 using namespace std;
4 #define MAXN 110
5 struct edge{
6 int s;
7 int e;
8 int dis;
9 }a[MAXN*60];
10
11 int N,Q,pre[MAXN],rank[MAXN];
12
13 void init(){
14 int i;
15 for(i=1;i<=N;i++){
16 pre[i]=-1;
17 rank[i]=1;
18 }
19 }
20
21 int find(int i){
22 if(pre[i]==-1) return i;
23 else return pre[i]=find(pre[i]);
24 }
25
26 void Union(int i,int j){
27 i=find(i);
28 j=find(j);
29 if(i==j) return;
30 int temp=rank[i]+rank[j];
31 if(rank[i]<rank[j]){
32 pre[i]=j;
33 rank[j]=temp;
34 }
35 else{
36 pre[j]=i;
37 rank[i]=temp;
38 }
39 }
40 int cmp(const void *c,const void *b){
41 return (*(edge*)c).dis-(*(edge*)b).dis;
42 }
43 int main(){
44 int i,j,k,temp;
45 int z,y,sum;
46 while(scanf("%d",&N)!=-1){
47 k=0;
48 for(i=1;i<=N;i++){
49 for(j=1;j<=i;j++) scanf("%d",&temp);
50 for(;j<=N;j++){
51 scanf("%d",&temp);
52 a[k].s=i;
53 a[k].e=j;
54 a[k].dis=temp;
55 k++;
56 }
57 }
58 qsort(a,k,sizeof(a[0]),cmp);
59 init();
60 scanf("%d",&Q);
61 while(Q--){
62 scanf("%d%d",&z,&y);
63 Union(z,y);
64 }
65 sum=0;
66 for(i=0;i<k;i++){
67 if(find(a[i].s)!=find(a[i].e)){
68 sum+=a[i].dis;
69 Union(a[i].s,a[i].e);
70 }
71 }
72 printf("%d\n",sum);
73 }
74 }
转载于:https://www.cnblogs.com/saintqdd/archive/2007/11/07/951690.html
hdu 1102 pku 2421 解题报告相关推荐
- hdu 1241 Oil Deposits 解题报告
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1241 第一次写搜索代码 花了好大的功夫检查 看了别人的结题报告 还是错误一大堆 哎 题目是这样的 @表 ...
- hdu 1003 Max Sum 解题报告
链接:http://acm.hdu.edu.cn/showproblem.php?pid=1003 Problem Description Given a sequence a[1],a[2],a[3 ...
- HDU 1421 搬寝室 解题报告(超详细)
**搬寝室 Time Limit: 2000/1000 MS Memory Limit: 65536/32768 K Problem Description 搬寝室是很累的,xhd深有体会.时间追述2 ...
- hdu 2602 Bone Collector 解题报告
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2602 在没学01背包时做的,很遗憾的是,wa了很多次. wa代码 1 #include <ios ...
- pku 1013 解题报告
题意:给出了三次天平的称重且一定能够从这三次称重中找出那个假的硬币,并且要求输出是比真的硬币轻了还是重了. 解题方法:由于最多只有13个银币所以采用了枚举. 代码(学习来源:<程序设计在线导引& ...
- hdu 2049 不容易系列之(4)——考新郎 解题报告
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2049 写这篇解题报告时 我真的很气愤 对自己又一次犯下低级错误改了两个小时 int型的数据居然用%I6 ...
- hdu 2058 解题报告 - The sum problem
hdu 2058 解题报告 - The sum problem 传送门:http://acm.hdu.edu.cn/showproblem.php?pid=2058 等差求和公式: Sn=(a1+aN ...
- 东南大学2004年程序设计第一届初赛解题报告
东南大学2004年第一届逻辑算法大赛初赛解题报告 农夫三拳@seu ...
- 解题报告 (十三) 尺取法
文章目录 尺取法 解题报告 PKU 2100 Graveyard Design PKU 3061 Subsequence PKU 2739 Sum of Consecutive Prime Numbe ...
最新文章
- HTML5学习笔记(一):HTML简介
- Android语音录入与邮件发送
- 无线网络共享到CM3计算板调试时 connect: Network is unreachable
- Java设计模式(2 / 23):观察者模式
- armeabi和armeabi-v7a的区别
- 史上最详细之Centos7安装与配置Redis6
- 亚马逊与Visa就交易费达成协议 重新接受Visa支付
- 沸腾新十年 | 中国语音产业江湖和科大讯飞的前半生...
- matlab求车辆调度问题的代码,车间作业调度问题遗传算法_matlab源代码
- CSS学习(四)——字体样式,文本样式
- 框架设计--第六章 初识MyBatis--习题答案
- 什么是软件测试?进行软件测试的目的是什么?
- 超全回顾 | 5位抖音工程师揭秘抖音iOS基础技术(附PPT和回放视频)
- requests结果显示“请开启JavaScript并刷新该页”,selenium不用cookie解决
- 谷歌整体战略:关于人工智能、云服务和登月计划的未来
- 工业通讯 | Profinet协议基础知识(四)
- 刷脸支付行业代理的几个坑,你踩了吗?
- 2.海康威视-web3.0插件连接摄像头实现预览效果
- CAD编辑工具中如何查找图纸中的坐标点的位置
- 网站商务通与百度商桥的区别