[Codeforces]813F Bipartite Checking】的更多相关文章

往期题目补档.既然被选为了经典题就拿来写一写. Description 给定一张含有n个点的无向图,一开始图中没有任何边.依次给出q次操作,每次操作给出两个点“x y”,若x和y之间没有边相连,则连上这条边,否则移除这条边.对于每次操作,你都要判断执行这一次操作之后,整张图是否为二分图. Input 第一行两个正整数n,q,表示点数和操作数. 接下来q行,每行两个正整数“x y”表示操作. Output 对于每次操作,判断执行该操作后,整张图是否为二分图,若为二分图,输出“YES”,否则输出“N…
大意: 动态添边, 询问是否是二分图. 算是个线段树按时间分治入门题, 并查集维护每个点到根的奇偶性即可. #include <iostream> #include <sstream> #include <algorithm> #include <cstdio> #include <cmath> #include <set> #include <map> #include <queue> #include &l…
Bipartite Segments 因为图中只存在奇数长度的环, 所以它是个只有奇数环的仙人掌, 每条边只属于一个环. 那么我们能把所有环给扣出来, 所以我们询问的区间不能包含每个环里的最大值和最小值, 这个东西能用dfs直接扣, 找最大值和最小值能用倍增, 或者直接tarjan扣出来就好. 然后 我们可以处理出每个点开始往右延伸的最大位置, 求答案能离线线段树(我是这么写的), 但有一点就是这个数组是个单调的数组, 所以我们能二分出那个刚好超过R的位置, 直接求就好啦. #include<b…
题目链接  Bipartite Segments 题意  给出一个无偶环的图,现在有$q$个询问.求区间$[L, R]$中有多少个子区间$[l, r]$ 满足$L <= l <= r <= R$,并且一个只包含$l$到$r$这些点的无向图为二分图. 因为整张图没有偶环,所以在这道题中如果某个无向图没有环,那个这个无向图就是二分图 Tarjan求出每个环的标号最小点和标号最大点. 令$f[i]$为能保证$[i, j]$这个区间构成的图都是二分图的$j$的最大值,则$f[i]$是不下降的 当…
擦..没看见简单环..已经想的七七八八了,就差一步 显然我们只要知道一个点最远可以向后扩展到第几个点是二分图,我们就可以很容易地回答每一个询问了,但是怎么求出这个呢. 没有偶数简单环,相当于只有奇数简单环,没有环套环.因为如果有环套环,必定是两个奇数环合并1个或几个点,也就是同时保持奇数或者同时变为偶数,而我们知道奇数+奇数=偶数,偶数+偶数=偶数,所以就证明了只有奇数简单环,不存在环套环. 我们现在有一些点,再加入一个点,最多会形成一个环,并且一定是奇环,这时候,编号为1~环上的最小编号的点,…
time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard output You are given names of two days of the week. Please, determine whether it is possible that during some non-leap year the first day of some month…
A The Contest 直接粗暴贪心 略过 #include<bits/stdc++.h> using namespace std; int main() {//freopen("t.txt","r",stdin); long long int n,sum=0,k; scanf("%lld",&n); for(int i=0;i<n;i++) { scanf("%lld",&k); sum…
[题目]C. Bipartite Segments [题意]给定n个点m条边的无向连通图,保证不存在偶数长度的简单环.每次询问区间[l,r]中包含多少子区间[x,y]满足只保留[x,y]之间的点和边构成的图是一个二分图. [算法]Tarjan缩点(找环) [题解]如果两个奇数长度的环相交,会得到一个偶数长度的简单环.所以原图是不存在偶数长度环的仙人掌(每条边只属于一个简单环). 二分图的定义:一个图是二分图当且仅当不存在奇数长度的环.在当前仙人掌上,二分图实际上要求选择的点不存在环. 也就是对于…
Discription You are given an undirected bipartite graph without multiple edges. You should paint the edges of graph to minimal number of colours, so that no two adjacent edges have the same colour. Input The first line contains three integers a, b, m…
题 http://codeforces.com/contest/901/problem/C codeforces 901C 解 首先因为图中没有偶数长度的环,所以: 1.图中的环长度全是奇数,也就是说,只要这个子图中存在环,那么这个子图肯定是不合法的. 2.图中任意两个环没有公共边,否则合成的环的长度必然是偶数 所以用一个dfs可以找到所有环 然后对于每个环,求出这个环里面的最大值 li 和最小值 ri .那么显然对于区间 [1,li] 中的任意位置 x,这个数的右区间的取值范围必然小于 ri,…