poj 1988 Cube Stacking(带权并查集)

news/2024/7/6 1:40:34

题目链接:poj 1988 Cube Stacking


题目大意:给出n,表示有n个立方体,p次操作(p未给出)操作分两种,M a b 将a所在列的正方体整个移动至b所在的立方体上面,C a 计算在a下面有几个立方体。


解题思路:带权并查集,根为最底下的立方体,权值代表当前立方体下面有几个,然后在一个数组记录说每一列有多少个立方体,在和并两列的时候作为移动那列的权值。


#include <stdio.h>
#include <string.h>

const int N = 30005;

int n, f[N], s[N], v[N];

int getfar(int x) {
	if (x != f[x]) {
		int t = f[x];
		f[x] = getfar(f[x]);
		v[x] += v[t];
	}
	return f[x];
}

void init () {
	scanf ("%d", &n);
	for (int i = 0; i < N; i++) {
		f[i] = i;
		s[i] = 1;
	}
	memset(v, 0, sizeof(v));
}

int main () {
	init ();

	int a, b;
	char str[10];

	for (int i = 0; i < n; i++) {
		scanf("%s", str);
		if (str[0] == 'M') {
			scanf("%d%d", &a, &b);
			int p = getfar(a), q = getfar(b);
			if (p != q) {
				f[p] = q;
				v[p] = s[q];
				s[q] += s[p];
			}
		} else {
			scanf("%d", &a);
			int p = getfar(a);
			printf("%d\n", v[a]);
		}
	}
	return 0;
}



http://www.niftyadmin.cn/n/1452166.html

相关文章

通信世界:十大热点技术(转)

2004年是中国通信行业平稳发展的一年&#xff0c;我社在广泛征求业内专家的基础上&#xff0c;对2004年通信技术进行全面的研究&#xff0c;评选出了10项热点技术。 1. 3G  入选理由&#xff1a;2004年3G仍然是绝对的主旋律。虽然拥有全球最多2G用户的中国并没有颁发3G牌照&a…

小智慧33

1、每个人真正强大起来都要度过一段没人帮忙&#xff0c;没人支持的日子。所有事情都是自己一个人撑&#xff0c;所有情绪都是只有自己知道。但只要咬牙撑过去&#xff0c;一切都不一样了。无论你是谁&#xff0c;无论你正在经历什么&#xff0c;坚持住&#xff0c;你定会看见最…

技术文章 | 用户洞察的秘密武器:ARMS前端监控功能正式上线!

本文来源于阿里云-云栖社区&#xff0c;原文点击这里。 近日&#xff0c;阿里中间件&#xff08;Aliware&#xff09;旗下的业务实时监控产品&#xff08;ARMS&#xff09;推出了前端监控服务。该技术通过对网站页面上动态数据的采集监测和实时反馈&#xff0c;可帮助企业更高效…

较长text型数据无法在Asp页面中取出的解决办法(转)

在Asp页面中向记录集取长text型数据时&#xff0c;出现如下错误现象时&#xff1a; Microsoft OLE DB Provider for ODBC Drivers 错误 80040e21 Errors occurred 可有以下三种解决办法&#xff1a; &#xff08;一&#xff09;使用rs.open sql,conn,1,3方式打开记录集 &#x…

对移动通信网络优化工作的一些见解(转)

摘要移动通信网络优化是一项长期的工作&#xff0c;本文通过对Alcatel公司的GSM系统的分析&#xff0c;找出了影响网络运行质量的原因&#xff0c;并针对各类原因提出了解决问题的若干措施。关键词 移动通信 网络优化 掉话率 拥塞率 通话干扰1前言目前&#xff0c;我国移动通信…

Codeforces 417A Elimination(水题)

题目链接&#xff1a;Codeforces 417A Elimination 题目大意&#xff1a;总决赛有n*m个名额&#xff0c;保送名额有k个&#xff0c;现在有两种形式的选拔赛&#xff0c;第一种需要出c道题&#xff0c;每办一场可以选出n支队伍&#xff0c;第二种每场有出d道题&#xff0c;每场…

DNTU无法查看远程计算机的进程列表(转)

为了方便管理&#xff0c;本人一般采用 DAMEWARE进行远程维护计算机。进程会碰到这样的情况&#xff1a;是用DNTU查看远程计算机的进程列表&#xff0c;却无法显示&#xff0c;提示 “Error: 53 - 找不到网络路径。 ”解决方法如下&#xff1a;原因一&#xff1a;Remote Regist…

ArrayList与数组转换的toArray

今天为了把一个ArrayList直接转化为一个String数组&#xff0c;着实费了一番功夫&#xff0c;后来经百度后才搞定&#xff0c;总结如下&#xff1a; 如果要把一个List直接转化为Object数组&#xff0c;则可以直接使用Object[] o list.toArray(); 如果要转化为String数组&#…