两种并查集
模板 int find(int x){ return par[x]==x?x:par[x]=find(par[x]); } 种类(扩展域)并查集 开多倍空间,维护种类间的关系 带权并查集 定义$ dis_i 为i到根节点的关系,实际是求dis_fx $
模板 int find(int x){ return par[x]==x?x:par[x]=find(par[x]); } 种类(扩展域)并查集 开多倍空间,维护种类间的关系 带权并查集 定义$ dis_i 为i到根节点的关系,实际是求dis_fx $
状压dp 棋盘式 P1896互不侵犯 #include<bits/stdc++.h> #define int long long const int mod=1e9+7; using namespace std; const int N=110,M=10; int cnt[1<<M];//当前状态行1的个数 vector<int> state;//存储可...
基本数据类型 标准数据类型 Python3 中常见的数据类型有: Number(数字) String(字符串) bool(布尔类型) List(列表) Tuple(元组) Set(集合) Dictionary(字典) Python3 的六个标准数据类型中: 不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组); 可变数...
C.Partitioning the Array 题意: 给定长度为n的数组,将其分为k份,模一个数m后,每一份相等 思路: 枚举n的因子,然后对于每个相同的位置求gcd,gcd不等于1则计数 #include <bits/stdc++.h> using namespace std; void solve(){ int n; cin >> n; ...
绪论 4类基本数据结构: 集合 线性结构 树形结构 图状结构(网状结构) 逻辑结构 定义元素之间的逻辑关系 存储结构 顺序存储结构 链式存储结构 抽象数据类型 原子数据类型 值不可分解,例如int,float 固定聚合类型 值确定 可变聚合类型 值不确定 ...
B. Aleksa and Stack(奇偶性构造数组) 题意: 创建一个单调递增序列,使得 $ (3 \cdot a_{i+2}) mod(a_{i+1}+a_i) !=0 $ 思路: 直接全部奇数,3*奇数=奇数,奇数+奇数=偶数 C. Vasilije in Cacak 题意: 给定n,k,x,从1-n选择k个数能组成x 思路: 选择k个数的最小值为前k个数的和,最大值为倒数k个数的和...
JAVA语言概述 JAVA SE(标准版) (1) java.lang:提供和Java语言及Java运行环境紧密相关的基础类和接口。 (2) java.io:提供输入输出类,这些类一般是面向流的,但是其中也包含了一个用于随机访问文件的类。 (3) java.math:提供用以进行高精度运算的数学类以及高精度的素数生成器。 (4) java.net:提供和网络相关的输入输出类,为基本的应...
质数 试除法判断质数 $ O(\sqrt{N}) $ bool is_prime(int x) { if (x < 2) return false; for (int i = 2; i <= x / i; i ++ )//写i*i<=x容易爆int,写i<=sqrt(x)太慢 if (x % i == 0) re...
前置知识(曼哈顿距离和切比雪夫距离) 曼哈顿距离: $ |x_1-x_2|+|y_1-y_2| $ 切比雪夫距离: $ max(|x_1-x_2|,|y_1-y_2|)$ 转换坐标: 曼哈顿距离 $ \to $ 切比雪夫距离: $ (x,y) \to (x+y,x-y) $ 切比雪夫距离 $ \to $ 曼哈顿距离: $ (x,y) \to (\frac{x+y}{2},\frac{x-y...
扫描线(模板) 题意: 求多个矩形的面积并 思路: 对矩形横坐标离散化,一个矩形分为上下两条边,下边记为1,上边记为-1,从下往上扫一个矩形,如果该边为正值说明还没碰到他相应的上边,此时可以记录面积;对记录下的每条边从下往上扫,每次累加剩余长度*两条边的高度差 注意: 一般的扫描线的一个点代表一条线段(防止两条线段端点重合),因此实际的右边界不是X[t[p].r]而是X[t[p].r+1] ...