博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
luogu3295 萌萌哒 (并查集+ST表)
阅读量:5244 次
发布时间:2019-06-14

本文共 869 字,大约阅读时间需要 2 分钟。

如果给相同的位置连边,最后联通块数是n,最后答案就是$9*10^{n-1}$

但直接连边是$O(n^2)$的

所以事先处理出一个ST表,每次O(1)地给那个ST表连边

最后再一点一点下放,就是把在这层的同一集合的的左儿子连到一个里,右儿子连到一个里

统计最下面那一层的联通块数量就行了

1 #include
2 #define pa pair
3 #define CLR(a,x) memset(a,x,sizeof(a)) 4 using namespace std; 5 typedef long long ll; 6 const int maxn=1e5+10,logn=20,P=1e9+7; 7 8 inline ll rd(){ 9 ll x=0;char c=getchar();int neg=1;10 while(c<'0'||c>'9'){
if(c=='-') neg=-1;c=getchar();}11 while(c>='0'&&c<='9') x=x*10+c-'0',c=getchar();12 return x*neg;13 }14 15 int id[maxn][20],pct,fa[maxn*logn],ch[maxn*logn][2];16 int N,M;17 bool flag[maxn*logn];18 19 inline int getf(int x){
return fa[x]==x?x:fa[x]=getf(fa[x]);}20 inline void makest(){21 for(int i=N;i;i--){22 id[i][0]=++pct;23 for(int j=0;id[i][j]&&id[i+(1<

 

转载于:https://www.cnblogs.com/Ressed/p/9782234.html

你可能感兴趣的文章
ASP.NET WebApi 基于OAuth2.0实现Token签名认证
查看>>
SendMail与Postfix的架构备忘
查看>>
paip.mysql 性能测试 报告 home right
查看>>
Atitit.跨平台预定义函数 魔术方法 魔术函数 钩子函数 api兼容性草案 v2 q216 java c# php js.docx...
查看>>
283. Move Zeroes把零放在最后面
查看>>
我的函数说明风格
查看>>
ssh 简介
查看>>
26.无向网邻接表类
查看>>
Visual Studio Code 打开.py代码报Linter pylint is not installed解决办法
查看>>
洛谷 p1352 没有上司的舞会 题解
查看>>
Python 数据类型
查看>>
Task 与 Activity
查看>>
Google Guava学习笔记——简介
查看>>
历时八年,HTML5 标准终于完工了
查看>>
17.树的子结构
查看>>
D - Mike and strings
查看>>
C++:多维数组的动态分配(new)和释放(delete)
查看>>
c#基础学习(0806)之抽象类实现多态
查看>>
S5PV210根文件系统的制作(一)
查看>>
51NOD 1244 莫比乌斯函数之和
查看>>