bzoj3569
2024-08-29 10:11:14
线性基
非常高端
强制在线动态图
我们先搞出一个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 ;
}
最新文章
- Python学习路程CMDB
- 【英语】Bingo口语笔记(75) - 元音辅音的辨读
- block_dump观察Linux IO写入的具体文件(mysqld)
- sybase SA密码重置
- Windows宿主机访问Ubuntu中mysql数据库笔记
- OpenGL —— 基础笔记
- Longest Palindromic Substring -LeetCode
- Unite&#39;17 Shanghai再一次问候
- Python之file
- 伙伴系统之避免碎片--Linux内存管理(十六)
- js 一个对象的属性名是一个变量怎么处理?
- 你真的了解META-INF吗?
- VM for Linux 版本的Bundle格式文件的安装
- 软Raid50制作
- Feature Selection Can Reduce Overfitting And RF Show Feature Importance
- luogu P1641 [SCOI2010]生成字符串
- 《DSP using MATLAB》Problem 5.3
- c++四舍五入的新方法
- CMFCPropertyGridProperty用法
- BZOJ3514: Codechef MARCH14 GERALD07加强版【LCT】【主席树】【思维】
热门文章
- Objective-C中单例
- 利用反射和泛型把Model对象按行储存进数据库以及按行取出然后转换成Model 类实例 MVC网站通用配置项管理
- hdu 5316 Magician 线段树
- 【Sprint3冲刺之前】TDzhushou软件项目测试计划书
- Oracle 【to_number】【instr】
- 算法排序-NB三人组
- 不使用flash实现复制文字(图片)到剪贴板
- (转)MongoDB在mongo控制台下的基本使用命令
- php 静态成员(static)抽象类(abstract)和接口(interface)
- CSDN第一期总结之三:Thread的问题(转)