BZOJ 3569 询问删除指定的k条边后图是否连通 线性基
思路:
这题思路好鬼畜啊……
绝对是神思路
//By SiriusRen
#include <cstdio>
#include <algorithm>
using namespace std;
const int N=100050,M=1000050;
int n,m,first[N],next[M],v[M],tot=1,vis[N],a[M],b[N],xx,yy,stk[19],ans;
void add(int x,int y){v[tot]=y,next[tot]=first[x],first[x]=tot++;}
void dfs(int x){
vis[x]=1;
for(int i=first[x];i;i=next[i])
if(!vis[v[i]])dfs(v[i]);
else a[i]=rand(),b[x]^=a[i],b[v[i]]^=a[i];
}
void dfs2(int x){
for(int i=first[x];i;i=next[i])
if(!a[i])dfs2(v[i]),a[i]^=b[v[i]],b[x]^=b[v[i]];
}
bool Gauss(){
int flag=1;
for(int i=30,j;~i;i--){
for(j=flag;j<=yy;j++)
if(stk[j]&(1<<i))break;
if(j==yy+1)continue;
swap(stk[flag],stk[j]);
for(int k=1;k<=yy;k++)
if(k!=flag&&(stk[k]&(1<<i)))stk[k]^=stk[flag];
flag++;
}return stk[yy];
}
int main(){
srand(1005730820);
scanf("%d%d",&n,&m);
for(int i=1;i<=m;i++)scanf("%d%d",&xx,&yy),add(min(xx,yy),max(xx,yy));
dfs(1),dfs2(1);
scanf("%d",&m);
while(m--){
scanf("%d",&yy);
for(int i=1;i<=yy;i++)scanf("%d",&xx),xx^=ans,stk[i]=a[xx];
if(Gauss())puts("Connected"),ans++;
else puts("Disconnected");
}
}
BZOJ 3569 询问删除指定的k条边后图是否连通 线性基的更多相关文章
- poj 3352 Road Construction【边双连通求最少加多少条边使图双连通&&缩点】
Road Construction Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 10141 Accepted: 503 ...
- LOJ114 k大(xiao)异或和(线性基)
构造线性基后将其消至对任意位至多只有一个元素该位为1.于是就可以贪心了,将k拆成二进制就好.注意check一下是否能异或出0. #include<iostream> #include< ...
- bzoj 2844 albus就是要第一个出场 异或和出现次数 线性基
题目链接 题意 给定\(n\)个数,将其所有的子集(\(2^n\)个)的异或和按升序排列.给出一个询问\(q\),问\(q\)在该序列中第一次出现位置的下标(下标从\(1\)开始). 题解 结论 记其 ...
- SQL ------ JDBC 删除指定的某条记录
package demo; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; ...
- BZOJ 3569: DZY Loves Chinese II [高斯消元XOR 神题]
http://www.lydsy.com/JudgeOnline/problem.php?id=3569 题意:多次询问一个无向连通图当图中某k条边消失时这个图是否联通 强制在线 太神啦啦啦啦啦啦啦啦 ...
- LOJ.114.K大异或和(线性基)
题目链接 如何求线性基中第K小的异或和?好像不太好做. 如果我们在线性基内部Xor一下,使得从高到低位枚举时,选base[i]一定比不选base[i]大(存在base[i]). 这可以重构一下线性基, ...
- 【BZOJ 3569】DZY Loves Chinese II
题面 Description 神校XJ之学霸兮,Dzy皇考曰JC. 摄提贞于孟陬兮,惟庚寅Dzy以降. 纷Dzy既有此内美兮,又重之以修能. 遂降临于OI界,欲以神力而凌♂辱众生. 今Dzy有一魞歄图 ...
- BZOJ 4671 异或图 | 线性基 容斥 DFS
题面 Description 定义两个结点数相同的图 G1 与图 G2 的异或为一个新的图 G, 其中如果 (u, v) 在 G1 与 G2 中的出现次数之和为 1, 那么边 (u, v) 在 G 中 ...
- 线性基求第k小异或值
题目链接 题意:给由 n 个数组成的一个可重集 S,每次给定一个数 k,求一个集合 \(T \subseteq S\), 使得集合 T 在 S 的所有非空子集的不同的异或和中, 其异或和 \(T_1 ...
随机推荐
- poj--1236--Network of Schools(scc+缩点)
Network of Schools Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 14062 Accepted: 56 ...
- [AHOI 2009] 同类分布
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1799 [算法] 数位DP [代码] #include<bits/stdc++. ...
- Docker私服仓库Harbor安装
Harbor安装那里还是很简单,就是在Docker Login那里掉坑里去了,搞半天,写博客的时候,又重新安装了一遍 1.准备两台服务器 centos7 harbor 10.19.46.15 clie ...
- 参照实验室这边案例做一个简单的maven webapp项目
流程 : 首先写出一个简单的前端页面. 之后写配置文件.dao.domain等等,注意这里可以使用generator进行自动配置 实验室这边配置文件如下: 其实主要的配置文件就分为6“个”. appl ...
- C语言中以文本方式读写文件时换行符转换的注意事项
我们知道在UNIX下是没有回车符(\r)的,只有换行符(\n),而C语言诞生于UNIX(Linux即面向开源的UNIX,Mac OS也是UNIX发展而来的,而Windows是从MS-DOS发展而来,与 ...
- jtable的用法
一.创建表格控件的各种方式:1) 调用无参构造函数.JTable table = new JTable();2) 以表头和表数据创建表格.Object[][] cellData = {{" ...
- mac 调整Launchpad行列数目
Mac调整Launchpad 行数和列数 开打Terminal终端依次输入以下三句: <1> 改变行数:defaults write com.apple.dock springboard ...
- 粘包解决高端_Server
from socket import * #导入套接字模块的所有命令import subprocess #导入subprocess模块,用于执行命令行import struct #导入struck模块 ...
- Codeforces Round #470 (rated, Div. 2, based on VK Cup 2018 Round 1)B. Primal Sport
Alice and Bob begin their day with a quick game. They first choose a starting number X0 ≥ 3 and try ...
- java有参无参构造器的的执行顺序
这里拿了用数组构造栈的一段代码说明一下 public class StackArray<E> { private Object[] data = null; private int max ...