BZOJ3569 : DZY Loves Chinese II
这回是真·强制在线了,首先这道题就是AHOI2013连通图的加强版,那道题k最大只有4
那道题的做法是:
取一个生成树,对每条非树边取一个随机权值,
对每条树边设为“覆盖它的所有非树边”的权值的xor,
对于每次询问,只要某个子集的所有边xor值是0,那么就不连通,否则连通。
通过$O(2^k)$枚举每一个子集来判断,复杂度为$O(q2^k)$
这道题也是一样的方法,但是不能枚举了,
使用高斯消元求解,
如果不存在自由基,那么说明只有空集的异或值为0
复杂度:$O(32qk)$
#include<cstdio>
#include<algorithm>
#define N 100010
#define M 500010
using namespace std;
typedef long long ll;
ll ran,p1,p2,p3,P=~0U>>1;
struct edge{int x,y,next;}e[M<<1];
int i,j,k,n,m,len,x,y,c,pt[M],aa[M],l,r,last[N],fa[N],na[N],q[N],dep[N],c1[16],lastans;bool flag;
inline void add(int x,int y){e[++len].y=y;e[len].x=x;e[len].next=last[x];last[x]=len;}
inline void read(int&a){
char c;while(!((c=getchar())>='0')&&(c<='9'));a=c-'0';
while(((c=getchar())>='0')&&(c<='9'))(a*=10)+=c-'0';
}
int a[16],g[32][16];
inline int Gauss(int n){
int i,j,r,c,cnt;
for(c=cnt=0;c<n;c++){
for(r=cnt;r<31;r++)if(g[r][c])break;
if(r<31){
if(r!=cnt)for(i=0;i<n;i++)swap(g[r][i],g[cnt][i]);
for(i=cnt+1;i<31;i++)if(g[i][c])for(j=0;j<n;j++)g[i][j]^=g[cnt][j];
cnt++;
}
}
return n-cnt;
}
int main(){
for(read(n),read(m),i=1;i<=n;i++)dep[i]=P>>1;
for(i=1;i<=m;i++)read(x),read(y),add(x,y),add(y,x);
q[r=1]=1;dep[1]=0;
while(l<r)for(i=last[x=q[++l]];i;i=e[i].next)
if(dep[e[i].y]>dep[x]+1){
fa[e[i].y]=x;
na[e[i].y]=(i+1)>>1;
dep[e[i].y]=dep[x]+1;
q[++r]=e[i].y;
}else if((i&1)==0&&fa[x]!=e[i].y){
ran*=13;ran+=237;ran%=P;
pt[(i+1)>>1]=ran;
aa[e[i].x]^=pt[(i+1)>>1];
aa[e[i].y]^=pt[(i+1)>>1];
}
for(i=r;i;i--)for(j=last[x=q[i]];j;j=e[j].next)if(fa[e[j].y]==x)aa[x]^=aa[e[j].y];
for(i=1;i<=n;i++)pt[na[i]]=aa[i];
read(k);
while(k--){
for(read(c),i=0;i<c;i++)read(c1[i]),a[i]=pt[c1[i]^lastans];
for(i=0;i<31;i++)for(j=0;j<c;j++)g[i][j]=(a[j]>>i)&1;
if(flag=(Gauss(c)==0))lastans++;
puts(flag?"Connected":"Disconnected");
}
return 0;
}
BZOJ3569 : DZY Loves Chinese II的更多相关文章
- [BZOJ3569]DZY Loves Chinese II(随机化+线性基)
3569: DZY Loves Chinese II Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 1515 Solved: 569[Submit][S ...
- BZOJ3569 DZY Loves Chinese II(随机化+树上差分+线性基)
上一题的强制在线版.对图跑出一个dfs树,给非树边赋上随机权值,树边的权值为覆盖他的非树边权值的异或.这样如果某条树边和覆盖他的非树边都被割掉(即图不连通),他们的异或值就为0.每次对询问看有没有子集 ...
- BZOJ3569:DZY Loves Chinese II(线性基)
Description 神校XJ之学霸兮,Dzy皇考曰JC. 摄提贞于孟陬兮,惟庚寅Dzy以降. 纷Dzy既有此内美兮,又重之以修能. 遂降临于OI界,欲以神力而凌♂辱众生. 今Dzy有一魞歄图, ...
- bzoj3569 DZY Loves Chinese II & bzoj3237 [AHOI2013] 连通图
给一个无向连通图,多次询问,每次询问给 k 条边,问删除这 k 条边后图的连通性,对于 bzoj3237 可以离线,对于 bzoj3569 强制在线 $n,m,q \leq 500000,k \leq ...
- BZOJ3569: DZY Loves Chinese II(线性基构造)
Description 神校XJ之学霸兮,Dzy皇考曰JC. 摄提贞于孟陬兮,惟庚寅Dzy以降. 纷Dzy既有此内美兮,又重之以修能. 遂降临于OI界,欲以神力而凌♂辱众生. 今Dzy有一魞歄图, ...
- 题解-bzoj3569 DZY Loves Chinese II
Problem bzoj 题意概要:给定\(n\)点\(m\)边无向连通图,\(Q\)次询问删除\(k\)条边后是否仍然连通,强制在线 Solution 半年前考到过这类题目(询问删除任意两条边使得图 ...
- 【BZOJ3569】DZY Loves Chinese II
[BZOJ3569]DZY Loves Chinese II 题面 bzoj 题目大意: 给你一张\(N(1\leq N\leq 10^5)\)个点\(M(1\leq M\leq 5\times 10 ...
- 【BZOJ3563/3569】DZY Loves Chinese II 线性基神题
[BZOJ3563/3569]DZY Loves Chinese II Description 神校XJ之学霸兮,Dzy皇考曰JC. 摄提贞于孟陬兮,惟庚寅Dzy以降. 纷Dzy既有此内美兮,又重之以 ...
- 【bzoj3569】 DZY Loves Chinese II
http://www.lydsy.com/JudgeOnline/problem.php?id=3569 (题目链接) 题意 给出一个无向图,$Q$组询问,每次询问将原图断掉$C$条边后是否还连通.在 ...
随机推荐
- iOS - 富文本AttributedString
最近项目中用到了图文混排,所以就研究了一下iOS中的富文本,打算把研究的结果分享一下,也是对自己学习的一个总结. 在iOS中或者Mac OS X中怎样才能将一个字符串绘制到屏幕上呢? ...
- 在asp.net利用jquery.MultiFile实现多文件上传(转载)
转载地址:http://www.cnblogs.com/scy251147/archive/2010/09/30/1839313.html 官网链接:http://www.fyneworks.com/ ...
- python threading编程中的LOCK和RLOCK(可重入锁)
找到一本PYTHON并发编辑的书, 弄弄.. #!/usr/bin/env python # -*- coding: utf-8 -*- import threading import time sh ...
- 无废话ExtJs 入门教程十二[下拉列表联动:Combobox_Two]
无废话ExtJs 入门教程十二[下拉列表联动:Combobox_Two] extjs技术交流,欢迎加群(201926085) 不管是几级下拉列表的联动实现本质上都是根据某个下拉列表的变化,去动态加载其 ...
- xml解析方法总结
==========================================xml文件<?xml version=”1.0″ encoding=”GB2312″?> <RES ...
- POJ3321 Apple Tree(树状数组)
先做一次dfs求得每个节点为根的子树在树状数组中编号的起始值和结束值,再树状数组做区间查询 与单点更新. #include<cstdio> #include<iostream> ...
- hibernate查询语句实例代码
一.聚集函数的使用: avg(...), sum(...), min(...), max(...) count(*) count(...), count(distinct ...), count(al ...
- [Linux][VMWare] 学习笔记之安装Linux系统-网络配置
最近开始折腾Linux,在本机装了个VMWare和Centos,装完之后虚拟机里面的OS可以上网,但是使用SecureCRT连接不上虚拟机,开始折腾这个网络. vmware安装好以后,会自动添加两张网 ...
- Vijos P1459 车展 treap求任意区间中位数
描述 遥控车是在是太漂亮了,韵韵的好朋友都想来参观,所以游乐园决定举办m次车展.车库里共有n辆车,从左到右依次编号为1,2,…,n,每辆车都有一个展台.刚开始每个展台都有一个唯一的高度h[i].主管已 ...
- 通信原理实践(六)——基带传输
一.基带传输引入 1.从数字带通传输说起 以上系统可以等价为: 这里"等价"的假设条件是 •信号通过滤波器不失真 •不存在码间串扰 意义:可以通过评估基带传输系统来获得数字带通传输 ...