【libreOJ模板】并查集(输入挂,取模与find优化)
1.了解了各种输入挂性orz,找到了一个合适的
2.find用while写能快一倍,并且能被数据卡掉
3.取模只能快十几毫秒,但也能被数据卡掉
取模find双优化是1997mm过的
再加一个性价比较高的输入挂是438mm 23333
#include <cstdio>
#include <cmath>
#include <complex>
#include <algorithm>
#include <iostream>
#include<string.h>
#include<vector>
#include<ctime>
#define rep(i,t,n) for(int i =(t);i<=(n);++i)
#define per(i,n,t) for(int i =(n);i>=(t);--i)
#define mmm(a,b) memset(a,b,sizeof(a))
typedef long long ll;
using namespace std;
#define N 2333333
const ll M= ;
const int maxn = 4e6 + ;
int f[maxn];
using namespace std; template<typename T>inline void add_(T &A, int B, ll MOD = M) { A += B; (A >= MOD) && (A -= MOD); }
template<typename T>inline void mul_(T &A, ll B, ll MOD = M) { A = (A*B) % MOD; }
namespace IO
{
const int MAXL = << ;
char buf[MAXL], *S, *T, ch; inline char Getch()
{
if (S == T) T = (S = buf) + fread(buf, , MAXL, stdin);
return S == T ? EOF : *S++;
} inline void Read(int &x)
{
x = ;
while (!isdigit(ch = Getch()));
do { x = x * + (ch ^ ''); } while (isdigit(ch = Getch()));
}
}
using namespace IO; int find(int x) {
while (f[x] ^ x)x = f[x] = f[f[x]]; return x;
}
void un(int x, int y) {
int xx = find(x), yy = find(y);
if(xx^yy)f[xx] = yy;
}
int main() {
int n, m;
cin >> n >> m;
rep(i, , n)f[i] = i;
int op, a, b;
ll ans = ;
rep(i, , m) {
Read(op); Read(a); Read(b);
if(!op)un(a, b);
else {
add_(ans, ans + (find(a) == find(b)));
}
}
cout << ans << endl;
cin >> n;
}
【libreOJ模板】并查集(输入挂,取模与find优化)的更多相关文章
- HDU 3306 Another kind of Fibonacci(矩阵+ll超时必须用int&输入必须取模&M必须是int类型)
Another kind of Fibonacci [题目链接]Another kind of Fibonacci [题目类型]矩阵+ll超时必须用int&输入必须取模&M必须是int ...
- HDU 1213 How Many Tables(模板——并查集)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1213 Problem Description Today is Ignatius' birthday ...
- HDU 1232 畅通工程(模板——并查集)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1232 Problem Description 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出 ...
- luoguP3367 [模板]并查集
题目链接:https://www.luogu.org/problemnew/show/P3367 思路: 今天学了新算法——并查集,本题是简单的并查集题的模板. 核心思想是“递归+压缩路径”. 并查集 ...
- Luogu [P3367] 模板 并查集
[模板]并查集 题目详见:[[P3367][模板]并查集] (https://www.luogu.org/problemnew/show/P3367) 这是一道裸的并查集题目(要不然叫模板呢) 废话不 ...
- LibreOJ #109. 并查集
题目描述 这是一道模板题. 维护一个 nnn 点的无向图,支持: 加入一条连接 uuu 和 vvv 的无向边 查询 uuu 和 vvv 的连通性 由于本题数据较大,因此输出的时候采用特殊的输出方式:用 ...
- 洛谷P4723 【模板】线性递推(多项式取模 线性代数)
题意 题目链接 Sol Orz shadowice 注意,下面的代码自带O(随时TLE)倍大常数.. #include<bits/stdc++.h> #define Pair pair&l ...
- 【畅通工程 HDU - 1232 】【并查集模板】
并查集讲解和模板 有一个博文对此分析的很透彻,附链接 为避免原链接失效,现摘录如下: 为了解释并查集的原理,我将举一个更有爱的例子. 话说江湖上散落着各式各样的大侠,有上千个之多.他们没有什么正当职业 ...
- 【bzoj1370】[Baltic2003]Gang团伙 并查集
题目描述 在某城市里住着n个人,任何两个认识的人不是朋友就是敌人,而且满足: 1. 我朋友的朋友是我的朋友: 2. 我敌人的敌人是我的朋友: 所有是朋友的人组成一个团伙.告诉你关于这n个人的m条信息, ...
随机推荐
- Wifiner for Mac(WiFi 状况分析工具)破解版安装
1.软件简介 Wifiner 是 macOS 系统上一款 Wifi 分析工具,仅需几次点击即可对您的 Wi-Fi 网络连接进行分析和故障排除.扫描您的 Wi-Fi 网络,获取包含交互式彩色编码热 ...
- input框触发回车事件
window.event只能在IE下运行,不能在firefox下运行,这是因为firefox的event只能在事件发生的现场使用. 在firefox里直接调用event对象会报undefined. ...
- java多线程状态
造成线程进入阻塞状态的情况大致可分为: 1.调用sleep()方法 2.调用阻塞式IO方法 3. 4.等待通知 5.调用suspend(),程序挂起.
- spring boot user authorities类图
- lua -- 生成协议
这是爬塔的协议 <?xml version="1.0" encoding="utf-8" ?> <coder name="Tower ...
- Python测试DB2连通性
Python测试数据库连通性: #!/usr/bin/python27 #encoding: utf-8 import ibm_db import os import sys def find_db( ...
- MSSQL 2012 修改所有表的架构Schame
ALTER SCHEMA [dbo] TRANSFER [sq_szswdjd].COM_Category ); declare csr1 cursor for select 'Name' = nam ...
- (转载)Redis5.0重量级特性Stream尝鲜
转 导读:Redis5.0最新重点推出了Stream的支持,给众多架构师在消息队列方面带来了新的选择,特别是Redis粉丝们绝对是一个福音.那么Redis的Stream有哪些特别的功能?跟kafka有 ...
- MyCAT简易入门 (Linux)
MyCAT是mysql中间件,前身是阿里大名鼎鼎的Cobar,Cobar在开源了一段时间后,不了了之.于是MyCAT扛起了这面大旗,在大数据时代,其重要性愈发彰显.这篇文章主要是MyCAT的入门部署. ...
- Guava学习笔记(一):Maven
<dependencies> <dependency> <groupId>com.google.guava</groupId> <artifact ...