内存限制:256 MiB时间限制:2000 ms标准输入输出
题目类型:传统评测方式:文本比较
上传者: 匿名

提交提交记录统计讨论

1

测试数据

题目描述

这是一道模板题。

维护一个 nnn 点的无向图,支持:

  • 加入一条连接 uuu 和 vvv 的无向边
  • 查询 uuu 和 vvv 的连通性

由于本题数据较大,因此输出的时候采用特殊的输出方式:用 000 或 111 代表每个询问的答案,将每个询问的答案一次从左到右排列,把得到的串视为一个二进制数,输出这个二进制数 mod 998244353\text{mod} ~ 998244353mod 998244353 的值。

输入格式

第一行包含两个整数 n,mn,mn,m,表示点的个数和操作的数目。

接下来 mmm 行每行包括三个整数 op,u,v\text{op},u,vop,u,v。

  • 如果 op=0\text{op} = 0op=0,则表示加入一条连接 uuu 和 vvv 的无向边;
  • 如果 op=1\text{op} = 1op=1,则表示查询 uuu 和 vvv 的连通性。

输出格式

一行包括一个整数表示答案。

样例

样例输入

3 6
1 1 0
0 0 1
1 0 1
1 1 2
0 2 1
1 2 1

样例输出

5

样例解释

答案串为 101101101。

数据范围与提示

n≤4000000,m≤8000000n\le 4000000,m\le 8000000n≤4000000,m≤8000000

显示分类标签

感觉这几天见鬼了。。

昨天写的旋转卡壳比暴力慢,

今天写的启发式合并比暴力合并慢,,

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<cmath>
 5 using namespace std;
 6 const int MAXN=8000001;
 7 const int mod=998244353;
 8 inline void read(int &n)
 9 {
10     char c='+';bool flag=0;n=0;
11     while(c<'0'||c>'9') c=='-'?flag=1,c=getchar():c=getchar();
12     while(c>='0'&&c<='9') n=n*10+c-48,c=getchar();
13 }
14 int fa[MAXN];
15 int size[MAXN];
16 int n,m;
17 string p;
18 int find(int x)
19 {return fa[x]==x?fa[x]:fa[x]=find(fa[x]);}
20 int query(int x,int y)
21 {return find(x)==find(y);}
22 void unionn(int x,int y)
23 {
24     int fx=find(x);int fy=find(y);
25     if(fx!=fy)
26     {
27         if(size[fx]>size[fy])    swap(fx,fy);
28         fa[fx]=fy;    size[fy]+=size[fx];
29         //fa[fx]=fy;
30     }
31 }
32 int ans=0;
33 int main()
34 {
35     //freopen("a.in","r",stdin);
36     //freopen("a.out","w",stdout);
37     read(n);read(m);
38     for(int i=1;i<=n;i++)    fa[i]=i;
39     for(int i=1;i<=m;i++)
40     {
41         int how;read(how);
42         if(how)// 询问
43         {
44             int x,y;read(x);read(y);
45             ans=(ans*2+query(x,y))%mod;
46         }
47         else//连边
48         {
49             int x,y;read(x);read(y);
50             unionn(x,y);
51         }
52     }
53     printf("%d",ans);
54     return 0;
55 }

转载于:https://www.cnblogs.com/zwfymqz/p/7355844.html

LOJ #109. 并查集相关推荐

  1. BZOJ 2143 飞飞侠(线段树优化建边 / 并查集优化最短路)【BZOJ修复工程】

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 题目链接 https://hydro.ac/d/bzoj/p/2143 是 hydro 的 BZOJ ...

  2. codeforces 400D Dima and Bacteria 并查集+floyd

    题目链接:http://codeforces.com/problemset/problem/400/D 题目大意: 给定n个集合,m步操作,k个种类的细菌, 第二行给出k个数表示连续的xi个数属于i集 ...

  3. hdu 1811 Rank of Tetris (并查集+拓扑排序)

    Problem - 1811 感觉这题的并查集以及拓扑排序并不难,但是做题的时候必须理解到矛盾(CONFLICT)与不确定(UNCERTAIN)直接的优先关系. 做这题的时候,构图什么的很简单,就是没 ...

  4. BZOJ5415:[NOI2018]归程(可持久化并查集,最短路)

    Description Input Output Sample Input1 1 4 3 1 2 50 1 2 3 100 2 3 4 50 1 5 0 2 3 0 2 1 4 1 3 1 3 2 S ...

  5. POJ 3694 (tarjan缩点+LCA+并查集)

    好久没写过这么长的代码了,题解东哥讲了那么多,并查集优化还是很厉害的,赶快做做前几天碰到的相似的题. 1 #include <iostream> 2 #include <algori ...

  6. UVALive 4035 - Undetectable Tour(并查集)

    题意:给定一个 N * N(3 <= N <= 10000)的矩形区域,左下角为(0,0),右上角为(N,N),现在要从左下角走到右上角,但是有 k(k <= 100)个监视器,每个 ...

  7. 迷宫收集星星 并查集解答

    群里发的来历不明的题目 可使用深搜广搜解决 我试了试并查集 效率不是很高 题目描述 解答 并查集 1 #include <iostream> 2 #include <vector&g ...

  8. Valentine's Day Round hdu 5176 The Experience of Love [好题 带权并查集 unsigned long long]

    传送门 The Experience of Love Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Ja ...

  9. 蓝桥备赛第四周 同余+并查集

    文章目录 0x33 同余 同余类+剩余系+费马小定理+欧拉定理及推论 最幸运的数字 题解 这次的代码很多东西:欧拉函数快速求解,gcd,快速乘,各种定理,建议当模板背 10LL 转换成长整型 快速乘+ ...

最新文章

  1. rhel7安装vnc出现error: Failed dependencies:
  2. 在Blazor中构建数据库应用程序——第1部分——项目结构和框架
  3. 苹果Mac临时文件存储助手工具:Yoink
  4. U盘文件夹类型变成应用程序
  5. 2019.07.一年级暑假——自动随机生成100以内加减法算术题的python实现
  6. K8S(二)安装配置篇
  7. SPU、SKU、SKC、ARPU是什么
  8. 使用递归顺序和逆序输出单链表
  9. 运筹说 第61期 | 整数规划经典例题讲解
  10. 一招解决win11系统字体模糊发虚不清楚的问题
  11. 山石防火墙怎么映射服务器,hillstone防火墙如何设置
  12. CF--1000D - Yet Another Problem On a Subsequence
  13. 发票识别 发票扫描识别 一键导出表格 增值税发票扫描识别
  14. umeditor php上传图片,html5 - UMeditor thinkphp上传图片出错
  15. 计算机配置查看软件,无需软件 三方法查看电脑配置
  16. 远程计算机需要网络级别身份验证,而您的不支持该验证
  17. 3-感知机的局限性与多层感知机
  18. 5.Struts2_Action 概述
  19. 光电滑环结构原理是什么
  20. pandas read_json时ValueError: Expected object or value的解决方案

热门文章

  1. 艾宾浩斯记忆曲线(遗忘曲线)
  2. 【Git从入门到精通】02-深入Git
  3. 判断浏览器类型 (区分IE浏览器)
  4. 计算机编程跟英语关系大吗,编程与英语的关系
  5. Shiro权限管理框架详解
  6. 养生指南 3 : 人的健康离不开两大要素 : 足够的气血 / 畅通的经络
  7. ESP32CAM--st7789--240x240--1.3inch
  8. 刷新率属于计算机的显示性能指标吗,显示器性能指标(菜鸟必看)
  9. 混合改进策略的黑猩猩优化算法
  10. 微信小程序========》showmodal弹窗content内容换行显示