bzoj3569
线性基
非常高端
强制在线动态图
我们先搞出一个dfs树,然后所有非树边都和树边形成一个环。我们考虑什么情况会不连通,当且仅当树边和dfs序大于当前点的返祖边都被断掉才不连通,那么我们给每个非树边赋一个权值,树边的权值就是所有这些返祖边的权值的异或和,这样一遍dfs就行了。
然后就是怎么判断,因为树边的权值等于有关非树边的异或和,那么就是当前给的边集有一个自己异或和等于0,这个可以用线性基来判断。
然后,我又在读入的时候break了,noipday1t2就因为这个调了半个小时。。。。。。
#include<bits/stdc++.h>
using namespace std;
const int N = 5e5 + ;
inline int rd()
{
int x = , f = ; char c = getchar();
while(c < '' || c > '') { if(c == '-') f = -; c = getchar(); }
while(c >= '' && c <= '') { x = x * + c - ''; c = getchar(); }
return x * f;
}
struct edge {
int nxt, to, w, id;
} e[N << ];
int n, m, cnt = , Q, ans;
int head[N], c[N], w[N], vis[N], d[N], v[];
void link(int u, int v, int id)
{
e[++cnt].nxt = head[u];
head[u] = cnt;
e[cnt].to = v;
e[cnt].id = id;
}
void dfs(int u, int last)
{
vis[u] = ;
for(int i = head[u]; i; i = e[i].nxt) if(e[i].to != last)
{
if(vis[e[i].to])
{
if(!w[e[i].id])
{
int t = rand();
w[e[i].id] = t;
d[u] ^= t;
d[e[i].to] ^= t;
}
}
else
{
dfs(e[i].to, u);
w[e[i].id] = d[e[i].to];
d[u] ^= d[e[i].to];
}
}
}
bool check(int x)
{
for(int i = ; i >= ; --i) if(x & ( << i))
{
if(!v[i])
{
v[i] = x;
return ;
}
else x ^= v[i];
}
return x;
}
int main()
{
srand();
n = rd();
m = rd();
for(int i = ; i <= m; ++i)
{
int u = rd(), v = rd();
link(u, v, i);
link(v, u, i);
}
dfs(, );
Q = rd();
while(Q--)
{
int k = rd(), f = ;
memset(v, , sizeof(v));
for(int i = ; i <= k; ++i)
{
c[i] = w[rd() ^ ans];
if(!check(c[i])) f = ;
}
puts(f ? "Connected" : "Disconnected");
ans += f;
}
return ;
}
bzoj3569的更多相关文章
- BZOJ3569 DZY Loves Chinese II(随机化+树上差分+线性基)
上一题的强制在线版.对图跑出一个dfs树,给非树边赋上随机权值,树边的权值为覆盖他的非树边权值的异或.这样如果某条树边和覆盖他的非树边都被割掉(即图不连通),他们的异或值就为0.每次对询问看有没有子集 ...
- 【bzoj3569】 DZY Loves Chinese II
http://www.lydsy.com/JudgeOnline/problem.php?id=3569 (题目链接) 题意 给出一个无向图,$Q$组询问,每次询问将原图断掉$C$条边后是否还连通.在 ...
- 【BZOJ3563/BZOJ3569】DZY Loves Chinese I/II(随机化,线性基)
[BZOJ3563/BZOJ3569]DZY Loves Chinese I/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 & bzoj3237 [AHOI2013] 连通图
给一个无向连通图,多次询问,每次询问给 k 条边,问删除这 k 条边后图的连通性,对于 bzoj3237 可以离线,对于 bzoj3569 强制在线 $n,m,q \leq 500000,k \leq ...
- 【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 ...
- BZOJ3569 : DZY Loves Chinese II
这回是真·强制在线了,首先这道题就是AHOI2013连通图的加强版,那道题k最大只有4 那道题的做法是: 取一个生成树,对每条非树边取一个随机权值, 对每条树边设为“覆盖它的所有非树边”的权值的xor ...
- 题解-bzoj3569 DZY Loves Chinese II
Problem bzoj 题意概要:给定\(n\)点\(m\)边无向连通图,\(Q\)次询问删除\(k\)条边后是否仍然连通,强制在线 Solution 半年前考到过这类题目(询问删除任意两条边使得图 ...
- BZOJ3569:DZY Loves Chinese II(线性基)
Description 神校XJ之学霸兮,Dzy皇考曰JC. 摄提贞于孟陬兮,惟庚寅Dzy以降. 纷Dzy既有此内美兮,又重之以修能. 遂降临于OI界,欲以神力而凌♂辱众生. 今Dzy有一魞歄图, ...
随机推荐
- java性能监控工具jps-windows
jps Lists the instrumented Java Virtual Machines (JVMs) on the target system. This command is experi ...
- 使用Cout输出String和CString对象
CString和string都是一个类,不同的是CString主要用于MFC或者是ATL编程中,而string则多用于Windows控制台编程中 在实际编程过程中,我们经常用到string或者是CSt ...
- 关于 AlphaGo 论文的阅读笔记
这是Deepmind 公司在2016年1月28日Nature 杂志发表论文 <Mastering the game of Go with deep neural networks and tre ...
- ActiveX控件打包成Cab置于网页中自动下载安装
[背景] http://www.360doc.com/content/13/1120/20/10159093_330853247.shtml 做过ActiveX控件的朋友都知道,要想把自己做的Acti ...
- uva 1378 - A Funny Stone Game sg博弈
题意:David 玩一个石子游戏. 游戏中,有n堆石子,被编号为0..n-1.两名玩家轮流取石子. 每一轮游戏.每名玩家选取3堆石子i,j,k(i<j,j<=k,且至少有一枚石子在第i堆石 ...
- Flatify分页
Flatify分页:<ul uib-pagination total-items="siteCount" items-per-page="1" max-s ...
- 升级到Scriptcase 8.0的注意事项
Scriptcase的最新版本号v8.0已经正式公布了,因为国外下载较慢,我们在百度云盘创建了下载地址: http://pan.baidu.com/s/1qWwh6bi (Windows可运行文件)大 ...
- EasyPusher手机直播推送是如何实现后台直播推送的
本文由EasyDarwin开源团队成员John提供:http://blog.csdn.net/jyt0551/article/details/52276062 EasyPusher Android是使 ...
- 开源流媒体服务器--EasyDarwin
欢迎加入我们的开源流媒体服务器项目:EasyDarwin, EasyDarwin是在Apple开源流媒体服务器Darwin Streaming Server(v6.0.3)基础上进行开发和维护的免费开 ...
- 程序员必知的8大排序(java实现)
先来看看8种排序之间的关系: