图论
Vectorxj
这个作者很懒,什么都没留下…
展开
-
[二分图]Codeforces 19E. Fairy
DescriptionDescription你有一个nn个点mm条边的无向图。 对于每条边,判断删除之后是否为二分图。 n,m≤104n,m\le10^4SolutionSolution一个图是二分图当且仅当没有奇环。 对dfsdfs树黑白染色,如果一条返祖边两端的颜色一样就说明是奇环。 发现如果有一个偶环也覆盖了这条边,那么删除这条边之后这个偶环和原来的奇环会形成一个奇环。 显然一条边合原创 2018-01-02 16:02:16 · 508 阅读 · 0 评论 -
BZOJ 2330 [差分约束][最短路]
2330: [SCOI2011]糖果 Description 幼儿园里有N个小朋友,lxhgww老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果。但是小朋友们也有嫉妒心,总是会提出一些要求,比如小明不希望小红分到的糖果比他的多,于是在分配糖果的时候,lxhgww需要满足小朋友们的K个要求。幼儿园的糖果总是有限的,lxhgww想知道他至少需要准备多少个糖果,才能使得每个小朋友都能够分原创 2016-05-23 19:41:52 · 493 阅读 · 0 评论 -
[二分图][Hall定理][线段树] ARC076 F - Exhausted?
SolutionSolution根据Hall定理答案就是MAXS⊆U(|N(S)|−|S|)\text{MAX}_{S\subseteq U}(|N(S)|-|S|)设一个点对(s,t)(s,t)代表区间[1,s]∪[t,m][1,s]\cup[t,m]。那么如果这个作为N(S)N(S),就有Li≤s,Ri≥t,i∈SL_i\le s,R_i\ge t,i\in S。 把这些点放在平面内就相当于数原创 2018-01-03 11:15:16 · 388 阅读 · 0 评论 -
[最长路][二分图]Codeforces 542 E. Playing on Graph
SolutionSolution如果图中存在奇环,那么这个奇环缩了以后还是会产生一个奇环,最后一定会缩到一个三元环,显然无解。 所以说合法的图一定是一个二分图。 对于从某一点开始的链,把距离它距离相同的点可以缩起来,因为这些点肯定在二分图的某一部,是没有边相邻的。所以答案就是每个联通块的直径长度的和。 跑最长路就好了#include <bits/stdc++.h>using namespac原创 2018-01-04 14:31:56 · 525 阅读 · 0 评论 -
[杂题]AGC015C - Nuske vs Phantom Thnook
DescriptionDescription给定一张网格图。图中的两个黑点右边当且仅当相邻。 求子网格图(x1,y1,x2,y2)(x_1,y_1,x_2,y_2)中联通块的个数。 保证两个点之间不连通或只存在一条简单路径。SolutionSolution森林的联通块个数=点数-边数。#include <bits/stdc++.h>using namespace std;const int N原创 2017-10-23 12:21:34 · 313 阅读 · 0 评论 -
[杂题]Codeforces 860D. Wizard's Tour
SolutionSolution首先答案的上界是⌊m2⌋\lfloor{m\over 2}\rfloor。 考虑dfsdfs树。 一个点如果连向dfsdfs序靠前的点的边有偶数条,那么把这些点一对一的加到答案里面。 如果只有奇数条,那么就要考虑把连向父节点的边也加进来。 在dfsdfs中记录这些东西就好了。 这样就得到的答案为⌊m2⌋\lfloor{m\over 2}\rfloor。#in原创 2017-10-18 14:54:16 · 366 阅读 · 0 评论 -
[最大团][二分图] LOJ #526. 「LibreOJ β Round #4」子集
SolutionSolution边(i,j)(i,j)存在当且仅当[(ai,aj)≠1∨(ai+1,aj+1)≠1][(a_i,a_j)\neq1\vee(a_i+1,a_j+1)\neq1]。 就等价于求最大团。 随机乱搞好像这种题都过不了qwq 发现一个性质,aia_i与aja_j奇偶性相同时是必定有边的。考虑补图的最大独立集,显然这是一个二分图,跑最大匹配就好啦。#incl原创 2018-01-17 18:56:14 · 451 阅读 · 0 评论 -
BZOJ 3514 [LCT][主席树]
Description" role="presentation" style="position: relative;">DescriptionDescriptionDescriptionN" role="presentation" style="position: relative;">NNN个点M" role="presentation" style="position: relative原创 2017-09-19 18:20:23 · 487 阅读 · 0 评论 -
[分治][并查集]Codeforces 603E. Pastoral Oddities
Description" role="presentation" style="position: relative;">DescriptionDescriptionDescription有n" role="presentation" style="position: relative;">nnn个点的图,你要动态的加入m" role="presentation" style="positi原创 2017-10-23 20:36:40 · 408 阅读 · 0 评论 -
[博弈论][二分图匹配][网络流] LOJ #536. 「LibreOJ Round #6」花札
SolutionSolutionSolution这是一个Undirected Vertex Geography。 可以 O(n3)O(n3)\mathcal{O}(n^3) 对每个点得到答案。 UVG游戏中 (G,v)(G,v)(G,v) 即图 GGG 中先手在 vvv 必胜的充要条件是 vvv 在所有最大匹配中。 证明:(充分性:)假设 vvv 在包含它的最大匹配 MMM 中: ...原创 2018-02-27 10:10:27 · 665 阅读 · 0 评论 -
[最短路图][DP] ARC090 E - Avoiding Collision
SolutionSolutionSolution刚开始读错题+1 首先转化为总方案数减去不合法的方案数。 先建出最短路图。DP出从S,TS,TS,T到每个点的方案数fu,gufu,guf_u,g_u。 考虑在边上还是点上相遇。 点上的话就考虑disT=2disudisT=2disu\text{dis}_T=2\text{dis}_u的点,贡献是f2ug2ufu2gu2f_u^2g_u^...原创 2018-03-07 16:10:25 · 539 阅读 · 0 评论 -
[分治][Trie][prufer数列] 51Nod 1601 完全图的最小生成树计数
SolutionSolutionSolution考虑从高位到低位枚举。 显然是把相同的放在一边,不同的找到权值最小的连边,这个可以TrieTrie\text{Trie}。 这样分治下去,最后得到一个没有限制的联通块,贡献就是sizesize−2sizesize−2size^{size-2}。 因为偷懒写了vectorvector\text{vector},还必须得预处理nn−2nn−2n...原创 2018-03-07 21:14:44 · 373 阅读 · 0 评论 -
[二分图][Hall定理][贪心] TCO 2015 1A Hard Revmatching
DescriptionDescription给定一个nn个点的二分图,每条边有一个边权。找到一个边权和最小的边集,使得删掉这个边集之后不存在完备匹配。n≤20n\le20SolutionSolution根据Hall定理,不存在完备匹配当且仅当存在子集SS,其中|S|<|N(S)||S|<|N(S)|。 直接枚举子集贪心搞就好了。// BEGIN CUT HERE// END CUT HER原创 2018-01-02 17:58:08 · 435 阅读 · 0 评论 -
[构造][度数序列的可图性]Codeforces Gym 100269K. Kids in a Friendly Class
DescriptionDescription一张图有黑点和白点。每个黑点有aa条边和黑点相连,bb条边和白点相连。每个白点有cc条边和黑点相连,dd条边和白点相连。求一个方案使总点数最少。a,b,c,d≤50a,b,c,d\le50SolutionSolution杜老师好强啊~ 黑白点的个数是可以枚举的。 设他们为nn和mm。那么有m=nbcm = {{nb}\over c}。 那原创 2017-10-24 20:48:49 · 612 阅读 · 0 评论 -
BZOJ 1059 [匈牙利算法]
1059: [ZJOI2007]矩阵游戏 Description 小Q是一个非常聪明的孩子,除了国际象棋,他还很喜欢玩一个电脑益智游戏——矩阵游戏。矩阵游戏在一个N*N黑白方阵进行(如同国际象棋一般,只是颜色是随意的)。每次可以对该矩阵进行两种操作:行交换操作:选择矩阵的任意两行,交换这两行(即交换对应格子的颜色)列交换操作:选择矩阵的任意行列,交换这两列(即交换对应格子的颜色)游戏的目标,原创 2016-05-24 14:11:16 · 490 阅读 · 0 评论 -
BZOJ 1191 [匈牙利算法]
1191: [HNOI2006]超级英雄Hero Description 现在电视台有一种节目叫做超级英雄,大概的流程就是每位选手到台上回答主持人的几个问题,然后根据回答问题的多少获得不同数目的奖品或奖金。主持人问题准备了若干道题目,只有当选手正确回答一道题后,才能进入下一题,否则就被淘汰。为了增加节目的趣味性并适当降低难度,主持人总提供给选手几个“锦囊妙计”,比如求助现场观众,或者去掉若干个错原创 2016-05-24 14:21:13 · 438 阅读 · 0 评论 -
BZOJ 3069 [LCT][并查集][双连通分量]
DescriptionDescription Byteasar是一个很纠结的人。每次他经过Bytetown的时候都知道有至少2条不同的路径可以选择,这导致他必须花很长时间来决定走哪条路。Byteasar最近听说了Bytetown的修路计划,他可能是唯一一个为此感到高兴的人——他有机会消除他的烦恼。 在Byteasar一共有n个岔口,连接着m条双向道路。两条路径完全不同当且仅当他们没有公共的道路(原创 2017-04-10 14:33:33 · 489 阅读 · 0 评论 -
BZOJ 4025 [并查集][二分图][分治]
DescriptionDescription有一张nn个点mm条边的图,第ii条边在SiS_i时刻出现,TiT_i时刻消失,对于11~TT的每个时刻,判断图是不是二分图。SolutionSolution其实就是看每个时刻存不存在奇环。 可以分治+LCT 可以直接LCT 可以分治+带权并查集(按秩合并后可以暴力爬树高也可以暴力撤回边都是O(logn)O(logn)的)#include <cstd原创 2017-07-26 15:41:19 · 719 阅读 · 0 评论 -
HDU 5333 [LCT][树状数组]
DescriptionDescription给定一张图,求编号在[L,R][L, R]之间的点的导出子图的连通块个数。SolutionSolution和这道题很像的吧。。 离线做,也是类似地记录一个prepre值。 每条边的权值定为连接的两个点编号的MinMin。#include <cstdio>#include <vector>#include <cstdlib>#include <cs原创 2017-09-21 20:18:33 · 330 阅读 · 0 评论 -
2016 计蒜之道 复赛 百度地图的实时路况 [Floyd][分治]
DescriptionDescription定义d(u,v,w)d(u,v,w)为从 uu 号点出发,严格不经过 vv 号点,最终到达 ww 号点的最短路径长度,求∑1≤x,y,z≤n,x≠y,y≠zd(x,y,z)\sum_{1≤x, y, z≤n, x ≠ y, y ≠ z}d(x, y, z)SolutionSolution考虑分治即可,FloydFloyd本身是一个不断利用中转点更新其他点的原创 2017-04-29 08:27:28 · 853 阅读 · 0 评论 -
BZOJ 1082 [二分][广搜]
1083: [SCOI2005]繁忙的都市 Description 城市C是一个非常繁忙的大都市,城市中的道路十分的拥挤,于是市长决定对其中的道路进行改造。城市C的道路是这样分布的:城市中有n个交叉路口,有些交叉路口之间有道路相连,两个交叉路口之间最多有一条道路相连接。这些道路是双向的,且把所有的交叉路口直接或间接的连接起来了。每条道路都有一个分值,分值越小表示这个道路越繁忙,越需要进行改造原创 2016-05-28 17:30:01 · 680 阅读 · 0 评论 -
BZOJ 3495 [2-SAT]
DescriptionDescriptionkk个国家,nn个城市,mm条边。要求每个国家有且仅有一个首都,每条边两端的城市至少要有一个首都。判断是否有解, 有解输出“TAK”,无解输出”NIE”。1≤k,n,m≤10000001≤k, n ,m≤1000000。SolutionSolution 经典二元关系 2-SAT 的模型,但是关系数是 O(n 2 ) 的,不 能承受。 对于一原创 2017-04-17 21:07:33 · 960 阅读 · 0 评论 -
LOJ 6062 [Hall定理]
Hall定理:设M(S)M(S)为与SS中的点相连的点集,一个二分图(U,V)(|U|≤|V|)(U,V)(|U|\le|V|)存在完备匹配,当且仅当满足对于任意点集x∈Ux∈U,都有|M(X)|≥|X||M(X)|\ge|X|。DescriptionDescription给出一个长度为nn的数列{aia_i}和一个长度为mm的数列{bib_i},求{aia_i}有多少个长度为mm的连续子数列能与{原创 2017-07-26 11:13:30 · 1345 阅读 · 0 评论 -
[最短路][DP][传递闭包] BZOJ 5109 && LOJ #6252. 「CodePlus 2017 11 月赛」大吉大利,晚上吃鸡!
SolutionSolution记fuf_u表示从SS到TT经过点uu的方案数。 这可以很简单的DP出来。 那么点对(A,B)(A,B)合法当且仅当fA+fB=fTf_A+f_B=f_TAA,BB无法互相到达。第一个用个表存,第二个按拓扑序做传递闭包就好了。 原来图会不连通 时间复杂度O(nlogn+nmw)O(n\log n+{nm\over w})#include <bits/st原创 2017-12-27 13:31:42 · 1138 阅读 · 0 评论 -
BZOJ 1179 [Tarjan][spfa]
1179: [Apio2009]Atm Description Input第一行包含两个整数N、M。N表示路口的个数,M表示道路条数。接下来M行,每行两个整数,这两个整数都在1到N之间,第i+1行的两个整数表示第i条道路的起点和终点的路口编号。接下来N行,每行一个整数,按顺序表示每个路口处的ATM机中的钱数。接下来一行包含两个整数S、P,S表示市中心的编号,也就是出发的路口。P表示酒吧数目。原创 2016-05-24 18:29:24 · 559 阅读 · 0 评论 -
[背包DP] UOJ #181. 【UR #12】密码锁
SolutionSolutionSolution因为这是一张竞赛图,所以把强连通分量缩起来以后回事一条链的情况。 那么强连通分量的数量就是相当于缩起来以后的点的数量。 对于图 G(V,E)G(V,E)G(V, E) 来说,这样的点集 S⊆VS⊆VS \subseteq V ,满足两个点集的边是这样的关系 e∈E^={(u,v)|u∈S,v∈V−S}e∈E^={(u,v)|u∈S,v∈V−S...原创 2018-03-16 13:54:02 · 630 阅读 · 0 评论