博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[BZOJ4025]二分图
阅读量:5024 次
发布时间:2019-06-12

本文共 1737 字,大约阅读时间需要 5 分钟。

description

solution

这里的单点询问需要全部的修改才能统计出答案

需要用到线段树分治的另一个形式:

在树上\(DFS\)维护数据结构,进入叶子的时候求出询问答案,回溯的时候栈序撤销

数据结构选择的是并查集,维护连通性和到达代表元(根节点)的路径长度奇偶性,合并的时候判断是否出现奇环即可

写了一个比较直接的内存修改的撤销

空间227M
千万别学我

code

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define FILE "a"#define mp make_pair#define pb push_back#define RG register#define il inlineusing namespace std;typedef unsigned long long ull;typedef vector
VI;typedef long long ll;typedef double dd;const dd eps=1e-10;const int mod=1e9+7;const int N=2e5+10;const dd pi=acos(-1);const int inf=2147483647;const ll INF=1e18+1;il ll read(){ RG ll data=0,w=1;RG char ch=getchar(); while(ch!='-'&&(ch<'0'||ch>'9'))ch=getchar(); if(ch=='-')w=-1,ch=getchar(); while(ch<='9'&&ch>='0')data=data*10+ch-48,ch=getchar(); return data*w;}int n,m,T;struct modify{int u,v;}M[N];vector
f[N<<4];struct data{int o,id,x;};vector
g[N<<4];#define mid ((l+r)>>1)#define ls (t<<1)#define rs (t<<1|1)void insertmodify(int t,int l,int r,int x,int y,modify m){ if(x<=l&&r<=y){f[t].pb(m);return;} if(x<=mid)insertmodify(ls,l,mid,x,y,m); if(mid
sz[fv])swap(u,v),swap(fu,fv); g[now].pb((data){1,fu,fa[fu]}); fa[fu]=fv; g[now].pb((data){2,fv,sz[fv]}); sz[fv]+=sz[fu]; g[now].pb((data){3,fu,dis[fu]}); dis[fu]=dis[u]^dis[v]^1; return 1;}il void recover(int t){ while(g[t].size()){ RG data a=g[t][g[t].size()-1]; if(a.o==1)fa[a.id]=a.x; if(a.o==2)sz[a.id]=a.x; if(a.o==3)dis[a.id]=a.x; g[t].pop_back(); }}void segdiv(int t,int l,int r){ now=t; for(RG int i=0,sz=f[t].size();i

转载于:https://www.cnblogs.com/cjfdf/p/9386007.html

你可能感兴趣的文章
jquery基本选择器
查看>>
hdu 1010 dfs搜索
查看>>
搭建wamp环境,数据库基础知识
查看>>
android中DatePicker和TimePicker的使用
查看>>
SpringMVC源码剖析(四)- DispatcherServlet请求转发的实现
查看>>
Android中获取应用程序(包)的大小-----PackageManager的使用(二)
查看>>
Codeforces Gym 100513M M. Variable Shadowing 暴力
查看>>
浅谈 Mybatis中的 ${ } 和 #{ }的区别
查看>>
CNN 笔记
查看>>
版本更新
查看>>
SQL 单引号转义
查看>>
start
查看>>
实现手机扫描二维码页面登录,类似web微信-第三篇,手机客户端
查看>>
PHP socket客户端长连接
查看>>
7、shell函数
查看>>
【转】Apache Jmeter发送post请求
查看>>
Nginx 基本 安装..
查看>>
【凸优化】保留凸性的几个方式(交集、仿射变换、投影、线性分式变换)
查看>>
NYOJ-613//HDU-1176-免费馅饼,数字三角形的兄弟~~
查看>>
TFS --- GrantBackup Plan Permissions Error
查看>>