2019牛客暑期多校训练营(第三场)A.Graph Games (分块)
题意:给你n个点 m条边的一张图 现在有q次操作 每次操作可以选择反转l~r的边号 也可以询问S(l)和S(r) 连接成的点集是否相同
思路:我们把m条边分块 用一个S数组维护每块对一个点的贡献 然后块间打标记 两端暴力
#include <bits/stdc++.h>
using namespace std;
const double pi = acos(-1.0);
const int N = 2e5+7,M = 505;
const int inf = 0x3f3f3f3f;
const double eps = 1e-6;
typedef unsigned long long ll;
const ll mod = 1e7+9;
int L[M],R[M],block[N],lazy[M];
ll Hash[N],val[N],S[M][N];
int a[N],b[N];
int n,m;
int main(){
// ios::sync_with_stdio(false);
// cin.tie(0); cout.tie(0);
int T; scanf("%d",&T);
srand(unsigned(time(NULL)));
for(int i=0;i<N;i++)
Hash[i]=rand();
while(T--){
scanf("%d%d",&n,&m);
int t=sqrt(m);
for(int i=1;i<=m;i++){
block[i]=(i+t-1)/t;
}
for(int i=1;i<=(m+t-1)/t;i++){
L[i]=(i-1)*t+1; R[i]=min(m,i*t);
for(int j=1;j<=n;j++)
S[i][j]=0;
lazy[i]=0;
}
for(int i=1;i<=m;i++){
scanf("%d%d",&a[i],&b[i]);;
S[block[i]][a[i]]^=Hash[b[i]];
S[block[i]][b[i]]^=Hash[a[i]];
}
int qq; scanf("%d",&qq);
for(int i=1;i<=qq;i++){
int op,l,r; scanf("%d",&op);
if(op==1){
scanf("%d%d",&l,&r);
int p=block[l]; int q=block[r];
if(p==q){
for(int i=l;i<=r;i++)
val[a[i]]^=Hash[b[i]],val[b[i]]^=Hash[a[i]];
}else{
for(int i=1;i<=R[p];i++)
val[a[i]]^=Hash[b[i]],val[b[i]]^=Hash[a[i]];
for(int i=p+1;i<=q-1;i++)
lazy[i]^=1;
for(int i=L[q];i<=r;i++)
val[a[i]]^=Hash[b[i]],val[b[i]]^=Hash[a[i]];
}
}else{
scanf("%d%d",&l,&r);
ll sa=val[l]; ll sb=val[r];
for(int i=1;i<=(m+t-1)/t;i++)
if(!lazy[i])
sa^=S[i][l],sb^=S[i][r];
printf("%d",(sa==sb));
}
}
puts("");
}
}
2019牛客暑期多校训练营(第三场)A.Graph Games (分块)的更多相关文章
- 2019牛客暑期多校训练营(第三场)H题目
题意:给你一个N×N的矩阵,求最大的子矩阵 满足子矩阵中最大值和最小值之差小于等于m. 思路:这题是求满足条件的最大子矩阵,毫无疑问要遍历所有矩阵,并判断矩阵是某满足这个条件,那么我们大致只要解决两个 ...
- 2019牛客暑期多校训练营(第三场)- F Planting Trees
题目链接:https://ac.nowcoder.com/acm/contest/883/F 题意:给定n×n的矩阵,求最大子矩阵使得子矩阵中最大值和最小值的差值<=M. 思路:先看数据大小,注 ...
- 2019牛客暑期多校训练营(第三场) F.Planting Trees(单调队列)
题意:给你一个n*n的高度矩阵 要你找到里面最大的矩阵且最大的高度差不能超过m 思路:我们首先枚举上下右边界,然后我们可以用单调队列维护一个最左的边界 然后计算最大值 时间复杂度为O(n*n*n) # ...
- 2019牛客暑期多校训练营(第九场)A:Power of Fibonacci(斐波拉契幂次和)
题意:求Σfi^m%p. zoj上p是1e9+7,牛客是1e9: 对于这两个,分别有不同的做法. 前者利用公式,公式里面有sqrt(5),我们只需要二次剩余求即可. 后者mod=1e9,5才 ...
- 2019牛客暑期多校训练营(第一场)A题【单调栈】(补题)
链接:https://ac.nowcoder.com/acm/contest/881/A来源:牛客网 题目描述 Two arrays u and v each with m distinct elem ...
- 2019牛客暑期多校训练营(第一场) B Integration (数学)
链接:https://ac.nowcoder.com/acm/contest/881/B 来源:牛客网 Integration 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 5242 ...
- 2019牛客暑期多校训练营(第一场) A Equivalent Prefixes ( st 表 + 二分+分治)
链接:https://ac.nowcoder.com/acm/contest/881/A 来源:牛客网 Equivalent Prefixes 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/ ...
- 2019牛客暑期多校训练营(第二场)F.Partition problem
链接:https://ac.nowcoder.com/acm/contest/882/F来源:牛客网 Given 2N people, you need to assign each of them ...
- 2019牛客暑期多校训练营(第一场)A Equivalent Prefixes(单调栈/二分+分治)
链接:https://ac.nowcoder.com/acm/contest/881/A来源:牛客网 Two arrays u and v each with m distinct elements ...
- [状态压缩,折半搜索] 2019牛客暑期多校训练营(第九场)Knapsack Cryptosystem
链接:https://ac.nowcoder.com/acm/contest/889/D来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 262144K,其他语言52428 ...
随机推荐
- 基于JavaFX实现的音乐播放器
前言 这个是本科四年的毕业设计,我个人自命题的一个音乐播放器的设计与实现,其实也存在一些功能还没完全开发完成,但粗略的答辩也就过去了,还让我拿了个优秀,好开心.界面UI是参考网易云UWP版本的,即使这 ...
- 【IMP】导出的时候显示ddl建表语句
导出数据后,在导入的时候想要显示出建表语句,可以用show=y这个选项来实现 imp test/test file=test.dmp ignore=y show=y fromuser=test1 to ...
- CTFHub - Web(六)
命令注入: 1.进入页面,测试127.0.0.1, 关键代码: <?php $res = FALSE; if (isset($_GET['ip']) && $_GET['ip'] ...
- Redis中哈希分布不均匀该怎么办
前言 Redis 是一个键值对数据库,其键是通过哈希进行存储的.整个 Redis 可以认为是一个外层哈希,之所以称为外层哈希,是因为 Redis 内部也提供了一种哈希类型,这个可以称之为内部哈希.当我 ...
- NOIP2020 T2 字符串匹配题解
首先考虑O(n^3)的暴力怎么写. 显然,可以枚举字符串\(A\)+\(B\)的右端点,左端点显然是1,暴力判断是否能与后面的字符构成循环节,对于满足 \(k*(A+B)+C=\) 整个字符串\((k ...
- IPC图像处理项目流程图
网络摄像机IPC图像处理项目流程图:
- 开心!再也不用担心 IntelliJ IDEA 试用过期了
背景 前段时间 Review 团队小伙伴代码,发现当他把鼠标挪到一个方法上时,就自动显示了该方法的所有注释信息,像下图这样,他和我用的 IDE 都是 IntelliJ IDEA. 而我还按古老的方式, ...
- Python内存浅析
Python内存分析 内存机制 转述:内存中的堆栈和数据结构堆栈不是一个概念,可以说内存中的堆栈是真实存在的物理区,数据结构中的堆栈是抽象的数据存储结构. Python的内存机制和Java差不多,分为 ...
- history附上时间戳,history命令_Linux history命令:查看和执行历史命令
起因是这样的,一台机器客户反馈连接不上,说没有任何操作.好吧,排查吧. 1.第一步先看网络是否通: 从图中可以看到一开始是一直不通的.然后就通了,问了客户有没操作重启什么的结果说没有任何操作,还让给个 ...
- JAVAV EMAIL
package a; import java.util.Date;import java.util.Properties;import javax.mail.Authenticator;import ...