2019牛客暑期多校训练营(第三场)A.Graph Games (分块)
2024-09-07 22:00:20
题意:给你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("");
}
}
最新文章
- LeetCode之100. Same Tree
- 删除ORACLE的步骤
- 人人都是 DBA(XIII)索引信息收集脚本汇编
- HTTP和GET/POST请求(NSURLConnection)
- css编写规范
- CSS3常用选择器(二)
- 如何下载免费英特尔&#174; 实感™ SDK
- Android ViewPager的每个页面的显示与销毁的时机
- MySql数据库的导入_命令工具
- C# 获得两日期之间所有月份(包括跨年)
- Spring-----Spring Jar包
- JavaMail收发邮件的一般流程与主要方法
- Linux--struct file结构体
- C++的string类
- Integer 与 int
- Mysql大量插入数据时SQL语句的优化
- 使用jconsole分析内存情况-JVM
- char *s 与 char s[ ]的区别
- Coding and Paper Letter(四十五)
- JSP内置对象——out,get与post
热门文章
- Oracle数据库基础操作语法
- 【Spring】Spring中的Bean - 5、Bean的装配方式(XML、注解(Annotation)、自动装配)
- luoguP2016 战略游戏
- [Usaco2010 Hol]cowpol 奶牛政坛
- 24V转3.3V稳压芯片,高效率同步降压DC-DC变换器3A输出电流
- Qt Undo Framework
- Elasticsearch从入门到放弃:浅谈算分
- SpringBoot单元测试的两种形式
- Bitter ORM NETCORE ORM 全网最粗暴简单易用高性能的 NETCore ORM 开源了
- elasticsearch从开始到永久