秋实大哥打游戏

Time Limit: 1 Sec  Memory Limit: 256 MB

题目连接

http://acm.uestc.edu.cn/#/contest/show/59

Description

”也许人生就是游戏,你却执意耕耘着春秋。” —— 秋实大哥叹道。

秋实大哥是一个喜欢玩游戏的人,相较于其他种类的游戏,秋实大哥更喜欢自由开放的沙盒游戏,尤其是minecraft。

现在,秋实大哥发现了N个独立的小岛(编号1,2,3.....N),于是他要把这些小岛连起来。

每一次,秋实大哥会选择两个不同的小岛x(x是所在集合的中心)和y(y不一定是集合的中心),如果小岛x和小岛y不在一个集合里,就建立一条距离为|x−y| mod 1000的边,

把这两片小岛合并为一个新的集合,中心为y原来所在的集合中心。

但,秋实大哥想实时知道某一个小岛距当前所在集合中心的距离。由于秋实大哥忙着过节,所以他想请你帮忙。

Input

第一行有一个整数N表示小岛的个数。

接下来有若干行,每一行为以下两种操作中的一种:

I x y : 表示秋实大哥想要在x和y之间建立一条边。
E x : 询问x到当前集合中心的距离。

输入以一个大写字母O结束。

1≤N≤100000,操作数≤200000。

Output

对于每一次询问,输出一个整数,即x到当前集合中心的距离,占一行。

Sample Input

3
I 1 2
E 1
I 3 1
E 3
O

Sample Output

1
3

HINT

题意

题解:

简简单单的带权并查集

每次往上更新的时候,顺便把边权更新了就好
记住得路径压缩

代码:

//qscqesze
#include <cstdio>
#include <cmath>
#include <cstring>
#include <ctime>
#include <iostream>
#include <algorithm>
#include <set>
#include <vector>
#include <sstream>
#include <queue>
#include <typeinfo>
#include <fstream>
#include <map>
typedef long long ll;
using namespace std;
//freopen("D.in","r",stdin);
//freopen("D.out","w",stdout);
#define sspeed ios_base::sync_with_stdio(0);cin.tie(0)
#define maxn 100010
int mod=1000;
#define eps 1e-9
//const int inf=0x7fffffff;   //无限大
const int inf=0x3f3f3f3f;
/*
inline ll read()
{int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*f;
}
int buf[10];
inline void write(int i) {int p = 0;if(i == 0) p++;else while(i) {buf[p++] = i % 10;i /= 10;}for(int j = p-1; j >=0; j--) putchar('0' + buf[j]);printf("\n");
}
*/
//**************************************************************************************
int p[maxn];
long long w[maxn];int fi(int x)
{if(p[x]==x) return x;else{fi(p[x]);w[x]+=w[p[x]];p[x]=fi(p[x]);}return p[x];
}
bool un(int a,int b)
{int x=fi(a);int y=fi(b);if(x==y) return false;p[a]=y;w[a]=abs(a-b)%1000+w[b];return true;
}
int main()
{int n,x,y;scanf("%d",&n);for(int i=0;i<=n;i++){p[i]=i;w[i]=0;}char a[100];while(scanf("%s",&a)!=EOF){if(a[0]=='O')break;if(a[0]=='E'){scanf("%d",&x);fi(x);printf("%lld\n",w[x]);}else{scanf("%d%d",&x,&y);un(x,y);}}return 0;
}

2015 UESTC 数据结构专题H题 秋实大哥打游戏 带权并查集相关推荐

  1. CDOJ 1070 秋实大哥打游戏 带权并查集

    链接 F - 秋实大哥打游戏 Time Limit:1000MS     Memory Limit:65535KB     64bit IO Format:%lld & %llu Submit ...

  2. 2015 UESTC 数据结构专题N题 秋实大哥搞算数 表达式求值/栈

    秋实大哥搞算数 Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/problem/show/1074 Des ...

  3. 2015 UESTC 数据结构专题G题 秋实大哥去打工 单调栈

    秋实大哥去打工 Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/contest/show/59 Descr ...

  4. 2015 UESTC 数据结构专题A题 秋实大哥与小朋友 线段树 区间更新,单点查询,离散化...

    秋实大哥与小朋友 Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/contest/show/59 Desc ...

  5. 2015 UESTC 数据结构专题D题 秋实大哥与战争 变化版本的线段树,合并区间,单点查询...

    D - 秋实大哥与战争 Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/contest/show/59 D ...

  6. cdoj 2015数据结构专题:D - 秋实大哥与战争

    男儿何不带吴钩,收取关山五十州. 征战天下是秋实大哥一生的梦想,所以今天他又在练习一个对战游戏. 秋实大哥命令所有士兵从左到右排成了一行来抵挡敌人的攻击. 敌方每一次会攻击一个士兵,这个士兵就会阵亡, ...

  7. cdoj 1070 秋实大哥打游戏 带权并查集

    题目链接: http://acm.uestc.edu.cn/#/problem/show/1070 题意: 题解: 带权并查集 每次往上更新的时候,顺便把边权更新了就好 记住得路径压缩 代码: 1 # ...

  8. poj1182 and 携程预赛2第一题 带权并查集

    题意:       动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形.A吃B, B吃C,C吃A.  现有N个动物,以1-N编号.每个动物都是A,B,C中的一种,但是我们并不知道它到底 ...

  9. POJ 2912 Rochambeau(难,好题,枚举+带权并查集)

    下面的是从该网站上copy过来的,稍微改了一点,给出链接:http://hi.baidu.com/nondes/item/26dd0f1a02b1e0ef5f53b1c7 题意:有N个人玩剪刀石头布, ...

最新文章

  1. 网易云推出了一组程序猿の真实写照【文末有彩蛋】
  2. InnoDB锁机制之Gap Lock、Next-Key Lock、Record Lock解析
  3. 使用response的outputstream
  4. 如何卸载bytefence anti-malware
  5. Apache Shiro权限绕过漏洞 (CVE-2020-11989) 挖掘分析和复现
  6. QA: Android 开发kotlin换行格式难看问题
  7. java synchronized概念用法
  8. 微信公众号查询粉丝列表
  9. 中国“脑计划”研究正在悄然布局
  10. 计算机相关的名词解释
  11. oracle 密码解锁
  12. 【产业互联网周报】网信办:不得利用算法影响网络舆论;华为任命丁耘为企业BG总裁;上海市布局数字经济、元宇宙等新赛道...
  13. 批量移动文件到以时间建立文件夹里
  14. Java数据结构与算法(二)
  15. 【题解】[POI2005] SZA-Template
  16. Python爬虫:和我一起学习scrapy(三)
  17. 基于51的单片机GPS定位系统设计
  18. Python·.·.print()函数格式化输出-超详解
  19. 阿里云服务器安装Clamav免费杀毒工具
  20. [ITS]Elon Musk impact on GameStop Share

热门文章

  1. tomcat安装_基于CentOS 一键安装tomcat脚本
  2. sudoers 用户权限配置_Linux 用户注意!针对Sudo 被曝漏洞,厂商已发布最新版本...
  3. 方舟原始恐惧mod生物代码_重磅!命令与征服和红色警戒源代码在GitHub公布了
  4. c++ :静态函数的应用
  5. 【项目实战课】基于Pytorch的DCGAN人脸嘴部表情图像生成实战
  6. 【赠书】阿里巴巴官方出品,工业级知识图谱最新书籍领取!
  7. 【AutoML】优化方法可以进行自动搜索学习吗?
  8. 【AI-1000问】你知道为什么GoogLeNet也被称为InceptionNet吗?
  9. 写在创业的路上:如何从无到有的打造一个产品
  10. XSuperTooltip - Office 2007 Super Tooltip class