hdu 6109 数据分割(并查集,倍增)
来源:互联网 发布:网络语言6的意思 编辑:程序博客网 时间:2024/06/05 08:54
题意:比较绕,n个表达式,表示a==b或者a!=b,有矛盾就重新开始,问可以分成多少段,每段多大。。
思路:倍增,On判断,也可以并查集加set维护(合并要注意使得集合头要是最早出现的。。),这里提供一下倍增的做法
PS。顺便吐槽一下百度之星的测评姬。。。还想吐槽一下自己比去年大概还弱,,今年怕是要打铁了
代码:
#include<bits/stdc++.h>using namespace std;#define MEM(a,b) memset(a,b,sizeof(a))#define bug puts("bug");#define PB push_back#define MP make_pair#define X first#define Y secondtypedef unsigned long long ll;typedef pair<int,int> pii;const int maxn=1e6+10;using namespace std;int n,a[maxn],b[maxn],c[maxn];int f[maxn];int fin(int x){ if(x==f[x]) return x; return f[x]=fin(f[x]);}int un(int x,int y){ int fx=fin(x),fy=fin(y); if(fx!=fy) f[fx]=fy;}int ok(int l,int r){ if(r>=n) return 0; int ret=1; for(int i=l;i<=r;i++) if(c[i]==1) un(a[i],b[i]); for(int i=l;i<=r;i++) if(c[i]==0&&fin(a[i])==fin(b[i])) ret=0; for(int i=l;i<=r;i++) f[a[i]]=a[i],f[b[i]]=b[i]; return ret;}int main(){ while(scanf("%d",&n)!=EOF){ for(int i=0;i<n;i++) scanf("%d%d%d",&a[i],&b[i],&c[i]); for(int i=0;i<n+10;i++) f[i]=i; int l=0; vector<int> ans; while(l<n){ int d=1; int ll=l; while(ok(l,ll+d)){ while(ok(l,ll+d*2)) d*=2; ll+=d; d=1; } if(ll+d<n)ans.PB(ll+d-l+1); l=ll+d+1; } printf("%d\n",ans.size()); for(int i=0;i<ans.size();i++) printf("%d\n",ans[i]); } return 0;}
阅读全文
0 0
- hdu 6109 数据分割(并查集,倍增)
- HDU 6109 数据分割(并查集+set+在线倍增法)
- hdu 6109 数据分割(并查集+set合并)
- HDU 6109 数据分割(并查集+缩点)
- hdu 6109 数据分割(并查集+set合并)
- hdu 6109 数据分割(并查集合并)
- HDU 6109 百度之星2017 1002 数据分割(并查集+set)
- HDU 6109 数据分割 【并查集+set】 (2017"百度之星"程序设计大赛
- hdu6109数据分割(并查集+set)
- HDU6109 数据分割 【并查集+启发式】
- hdu6109 数据分割【并查集+set】
- hdu 6109 数据分割 并查集缩点建边
- codeforces 827D(kruskal+倍增+并查集)
- 4569: [Scoi2016]萌萌哒 倍增+并查集
- 【bzoj4569】[Scoi2016]萌萌哒 倍增+并查集
- BZOJ4569 萌萌哒 [倍增][并查集]
- HDU 6109(并查集)
- 2017百度之星初赛:A-1002. 数据分割(并查集+set)
- MQL4 语言入门。简介
- 2017 Multi-University Training Contest
- 前端性能优化--图片懒加载(lazyload image)
- GB2312编码规则与代码实现
- Python:字符串操作1(去掉空格)
- hdu 6109 数据分割(并查集,倍增)
- 8-12 DAIRY
- jvm内存模型
- HDU 1872
- TimeUtil,时间处理
- 2017.8.12
- HDU
- VM搭建centos系统注意事项以及配置
- React-Navigation中文文档