链接

F - 秋实大哥打游戏

Time Limit:1000MS     Memory Limit:65535KB     64bit IO Format:%lld & %llu

Appoint description: System Crawler  (2016-04-24)

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


I 1 2 
E 1 
I 3 1 
E 3 
O

Sample Output


3

要求:复习时重做一遍

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <vector>
#include <queue>
#include <stack>
#include <map>
#include <algorithm>
#include <set>
using namespace std;
typedef long long LL;
typedef unsigned long long Ull;
#define MM(a,b) memset(a,b,sizeof(a));
const double eps = 1e-10;
const int inf = 0x3f3f3f3f;
const double pi=acos(-1);
const int maxn=100000;
char s[5];
int f[maxn+10],dis[maxn+10];int findr(int x)
{if(f[x]!=x){int par=f[x];//在路径压缩之前保存连接的边,否则路径压缩后直接指向根节点f[x]=findr(f[x]);//递归dis[x]+=dis[par];}return f[x];
}void unite(int x,int y)
{int ry=findr(y);if(x==ry) return;f[x]=y;//建立一条边dis[x]=abs(x-y)%1000;//这个初始化非常重要,好好想想
}int main()
{int n;while(~scanf("%d",&n)){for(int i=1;i<=n;i++) {f[i]=i;dis[i]=0;}while(~scanf("%s",s)){int x,y;if(s[0]=='I'){scanf("%d %d",&x,&y);unite(x,y);}else if(s[0]=='E'){scanf("%d",&x);findr(x);printf("%d\n",dis[x]);}else break;}}return 0;
}

  分析:写的第一道带权并查集,还是挺有意思的,跟普通并查集比起来就是边多了权值,

抓住核心式子,dis[child  to  par  ]+=dis[par to   root],以儿子和父亲间合并的那条边为桥梁

转载于:https://www.cnblogs.com/smilesundream/p/5440246.html

CDOJ 1070 秋实大哥打游戏 带权并查集相关推荐

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

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

  2. CODJ 1070 秋实大哥打游戏 并查集

    有N个独立的点,标号为1,2,3,-N.现在要把他们连接起来,每次选取x和y两个点,x是它所处集合的中心,y不一定是它所处集合的中心,然后在xy间连一条长度为|x-y|mod1000的边.然后把这两个 ...

  3. 2015 UESTC 数据结构专题H题 秋实大哥打游戏 带权并查集

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

  4. 信息传递(带权并查集求最小环

    P2661 [NOIP2015 提高组] 信息传递 题意: nnn 个同学玩信息传递,第 iii 个同学只会将信息传递给同学 TiT_iTi​,游戏开始时每个人只知道自己的生日,一轮游戏同学 iii ...

  5. 2017乌鲁木齐区域赛I(带权并查集)

    #include<bits/stdc++.h> using namespace std; int f[200010];//代表元 long long rl[200010];//记rl[i] ...

  6. BZOJ 2303 方格染色(带权并查集)

    要使得每个2*2的矩形有奇数个红色,如果我们把红色记为1,蓝色记为0,那么我们得到了这2*2的矩形里的数字异或和为1. 对于每个方格则有a(i,j)^a(i-1,j)^a(i,j-1)^a(i-1,j ...

  7. POJ1703带权并查集(距离或者异或)

    题意:       有两个黑社会帮派,有n个人,他们肯定属于两个帮派中的一个,然后有两种操作 1 D a b 给出a b 两个人不属于同一个帮派 2 A a b 问a b 两个人关系 输出 同一个帮派 ...

  8. POJ1988(带权并查集,搬砖块)

    题意:        可以这样理解,有n快方形积木,一开始都是单独的放到哪,然后有两种操作 1 M a b 把a所在的那一堆落到b所在那一堆的上面(一开始自己是一堆) 2 C a 问a下面有多少个积木 ...

  9. LA3027简单带权并查集

    题意:       有n个点,一开始大家都是独立的点,然后给出一些关系,a,b表示a是b的父亲节点,距离是abs(a-b)%1000,然后有一些询问,每次询问一个节点a到父亲节点的距离是多少? 思路: ...

最新文章

  1. 2021-07-27查看图像像素值类别
  2. Cisco的相关配置
  3. linux docker安装mysql_Linux-docker安装mysql
  4. C# WinForm开发系列 - DataGrid/DataGridView
  5. 【信息图】此图阐述了社交媒体行业发展,作为知识普及贴
  6. np.reshape带给我的内存错误
  7. Windows与Linux区别1
  8. 产品认知:产品经理进入新公司第一件事该做什么?
  9. 真格量化-历史波动率
  10. VS2015 vc++ 项目出现new.h找不到的错误
  11. java解析带斜杠的参数_Java Spring MVC应用程序仅接受带有斜杠的POST请求
  12. JS执行Promise
  13. 简单的@Async使用 自定义连接池
  14. 计算机windows实验原理,Windows上机实验报告
  15. 计算机语言环境变量,Win7环境变量中如何切换语言
  16. mysql每次查询加流水号_通过SQL自动添加流水号
  17. malloc函数的用法详解:
  18. 服务器端身份验证技术,身份认证技术和协议的常用方法
  19. r语言 c d生产函数,R语言定义多维数组和数组的运算
  20. FineBI 中 逻辑函数if 嵌套 没有else

热门文章

  1. 解决安装svn后出现Unable to connect to a repository at URL以及认证失败
  2. 疯了吧!面试官 5 连问一个 TCP 连接可以发多少个 HTTP 请求?
  3. 一篇文章带你详解 HTTP 协议之报文首部及字段详解(中)
  4. 牛逼哄哄的 RPC 框架,底层到底什么原理?
  5. 【Scratch】青少年蓝桥杯_每日一题_5.25_排序
  6. 【Scratch】青少年蓝桥杯_每日一题_3.17_蹦床
  7. 高度平衡二叉树的构建_平衡二叉树建立及其增删改查(JAVA)
  8. python局部变量想作用于全局_python 局部和全局作用域
  9. AI:神经网络调参(数据、层数、batch大小,学习率+激活函数+正则化+分类/回归)并进行结果可视化
  10. Py之yacs:yacs的简介、安装、使用方法之详细攻略