hdu3635 Dragon Balls(带权并查集)

简介:

/*
   题意:有N个城市, 每一个城市都有一个龙珠(编号与城市的编号相同),有两个操作
   T A ,B 将标号为A龙珠所在城市的所有的龙珠移动到B龙珠所在城市中! 
   
   思路:并查集 (压缩路径的时候将龙珠移动的次数进行更新) 
*/
#include<iostream> 
#include<cstring>
#include<cstdio>
#include<algorithm>
#define M 10005
using namespace std;

int f[M];//表示龙珠 i 所在的城市标号 
int Tcnt[M];//记录每个龙珠移动的次数 
int Scnt[M];//记录每个城市中龙珠总个数 

int getFather(int x){
   if(x==f[x])
     return x;
   
   int ff=getFather(f[x]); 
   Tcnt[x]+=Tcnt[f[x]];//每一个龙珠移动的次数+=其依附的父亲龙珠移动的次数 
   f[x]=ff;
   return f[x]; 
}

void Union(int a, int b){
   int fa=getFather(a);
   int fb=getFather(b);
   if(fa==fb) return;
   f[fa]=fb;
   Scnt[fb]+=Scnt[fa];//将fa城市的龙珠全部移动到fb城市中! 
   Scnt[fa]=0;
   Tcnt[fa]+=1;//a球移动次数+1 
} 

int main(){
   int t, a, b;
   int n, m;
   char ch[2];
   scanf("%d", &t);
   for(int cc=1; cc<=t; ++cc){
          printf("Case %d:\n", cc); 
       scanf("%d%d", &n, &m);
       memset(Tcnt, 0, sizeof(int)*(n+1));
       for(int i=1; i<=n; ++i)
          f[i]=i, Scnt[i]=1;
       while(m--){
          scanf("%s", ch);
          if(ch[0]=='T'){
             scanf("%d%d", &a, &b);
             Union(a, b); 
          }
          else {
             scanf("%d", &a);
             int ff = getFather(a);
             printf("%d %d %d\n", ff, Scnt[ff], Tcnt[a]); 
          }          
       }
   } 
   return 0;
}

目录
相关文章
|
Linux
一分钟学会Linux分区挂载
1.使用fdisk对/dev/nvme0n1剩余空间进行分区
630 0
|
12月前
|
人工智能 自然语言处理 API
Multimodal Live API:谷歌推出新的 AI 接口,支持多模态交互和低延迟实时互动
谷歌推出的Multimodal Live API是一个支持多模态交互、低延迟实时互动的AI接口,能够处理文本、音频和视频输入,提供自然流畅的对话体验,适用于多种应用场景。
441 3
Multimodal Live API:谷歌推出新的 AI 接口,支持多模态交互和低延迟实时互动
|
11月前
|
机器学习/深度学习 存储 人工智能
阿里云与零一万物达成战略合作,成立产业大模型联合实验室
阿里云与零一万物达成战略合作,成立“产业大模型联合实验室”。结合双方顶尖研发实力,加速大模型从技术到应用的落地。实验室涵盖技术、业务、人才等板块,通过阿里云百炼平台提供模型服务,针对ToB行业打造全面解决方案,推动大模型在金融、制造、交通等领域的应用,助力AI驱动的产业升级。
713 8
|
数据可视化 JavaScript 前端开发
低代码可视化Uniapp点击事件-代码生成器
低代码可视化Uniapp点击事件-代码生成器
324 0
低代码可视化Uniapp点击事件-代码生成器
交换机中创建MAC地址表
【10月更文挑战第1天】
501 2
|
存储 安全 Linux
在Linux中,用户和组的概念是什么?
在Linux中,用户和组的概念是什么?
|
SQL 存储 关系型数据库
MySQL中的二进制日志(binlog)与中继日志(Relay log)
MySQL中的二进制日志(binlog)与中继日志(Relay log)
1008 0
|
自然语言处理 知识图谱 搜索推荐
大语言模型 RAG 论文总结(2023~202404)(3)
大语言模型 RAG 论文总结(2023~202404)
616 0
|
机器学习/深度学习 人工智能 数据安全/隐私保护
探索iOS开发的未来趋势
【5月更文挑战第31天】本文深入探讨了iOS开发领域的最新动态与未来展望。随着技术的不断进步,iOS开发者面临着前所未有的机遇与挑战。文章将分析当前iOS开发的关键技术点,并预测未来的发展方向,为开发者提供宝贵的参考信息。
|
运维 Kubernetes 监控
避免业务中断,K8s节点故障排查攻略,速来围观!
避免业务中断,K8s节点故障排查攻略,速来围观!
457 0