BZOJ 4569: [Scoi2016]萌萌哒【倍增并查集
来源:互联网 发布:暗黑破坏神2画面优化 编辑:程序博客网 时间:2024/06/10 09:45
倍增并查集,考试naive地写的暴力_(:_ゝ∠)_
#include<cstdio>#include<algorithm>#include<cstring>#include<iostream>using namespace std;int n,m;const int MAXN=100057;const int MOD=1000000007;int f[17][MAXN];int a,b,c,d,k;long long ans=9;intfindfather(int c,int x){ return f[c][x]==x?x:f[c][x]=findfather(c,f[c][x]);}void merge(int c,int x,int y){if(findfather(c,x)==findfather(c,y))return ;f[c][f[c][x]]=f[c][y];if(!c)return ;--c;merge(c,x,y),merge(c,x+(1<<c),y+(1<<c));} int main(){scanf("%d%d",&n,&m);if(n==1)return puts("10"),0;for(int i=0;(1<<i)<=n;++i)for(int j=1;j+(1<<i)-1<=n;++j)f[i][j]=j;while(m--){scanf("%d%d%d%d",&a,&b,&c,&d);if(a==c)continue;for(k=0;(1<<k)<=(b-a+1);++k);--k;//k=31-__builtin_clz(b-a+1);merge(k,a,c),merge(k,b-(1<<k)+1,d-(1<<k)+1);}int cnt=-1;for(int i=1;i<=n;++i)if(findfather(0,i)==i)++cnt;while(cnt-->0){ans*=10;if(ans>=MOD)ans%=MOD;}cout<<ans;return 0;}
0 0
- BZOJ 4569: [Scoi2016]萌萌哒【倍增并查集
- BZOJ 4569: [Scoi2016]萌萌哒 并查集+倍增
- BZOJ 4569: [Scoi2016]萌萌哒 倍增思维并查集
- 4569: [Scoi2016]萌萌哒 倍增+并查集
- 【bzoj 4569】[Scoi2016]萌萌哒 (并查集)
- 【bzoj4569】[Scoi2016]萌萌哒 倍增+并查集
- bzoj 4569: [Scoi2016]萌萌哒 (st表+并查集)
- bzoj 4569: [Scoi2016]萌萌哒 ST表+并查集
- BZOJ 4569: [Scoi2016]萌萌哒 ST表 并查集
- 【BZOJ 4569】【SCOI】【萌萌哒】【并查集】【倍增均摊优化】
- [BZOJ]4569 [SCOI2016] 萌萌哒 并查集神题
- bzoj 4569: [Scoi2016]萌萌哒
- BZOJ 4569: [Scoi2016]萌萌哒
- BZOJ 4569 [Scoi2016]萌萌哒
- BZOJ 4569: [Scoi2016]萌萌哒
- BZOJ 4569 [Scoi2016]萌萌哒
- BZOJ 4569 [Scoi2016] 萌萌哒
- BZOJ 4569: [Scoi2016]萌萌哒
- 文本挖掘,我们想要得到什么
- Cloudera 5.7集群部署(一)--准备工作
- 【Dongle】【Web】牛腩新闻发布系统之终篇
- SpringMVC之HelloWorld
- 找出字符串
- BZOJ 4569: [Scoi2016]萌萌哒【倍增并查集
- Medical image registration(section7)
- HSDIS:JIT生成代码反汇编
- 数据结构-线性表
- boost-pretty-printer配置及问题
- 为了梦想,努力奋斗! 追求卓越,成功就会在不经意间追上你 mysql之触发器trigger
- 利用SharePoint 2013 创建Service Desk 网站之分配一线工程师支持!
- AbstractSet抽象类源码解析
- 电池极片检测项目总结