随笔分类 - 图论
摘要:$n \leq 2e5,m \leq 2e5,q \leq 2e5$,$n,m$的图给固定的$s,t$,以及$q$个询问,每次问删掉某条边之后问$s$到$t$的最短路。 首先喷一波,出题人语文太差了,这么美的题目居然潦草两句带过背景,描述题目也毫无趣味,差评!(本题分类:语文) 方法一:把图载到一个
阅读全文
摘要:$n \leq 100$的完全图,对每个$0 \leq K \leq n-1$问生成树中与给定的一棵树有$K$条公共边的有多少个,答案$mod \ \ 1e9+7$。 对这种“在整体中求具有某些特性的部分”,可以通过把“特性”强行复制加入“整体”来考察新的整体与部分的关系。 说人话,在这里是要求完全
阅读全文
摘要:n<=400000个在线操作:树上插入一个某点权、父亲为某点的点;查询这样的最长点序列:序列的某个数必须是上一个数的祖先之一;序列的点权和不能超过x;序列的某个点的点权必须不小于上一个,且相邻两个点之间不存在点权大于等于深度大的那个点的点权的点。 说白了,就是每个点找他祖先中第一个点权大于等于他的点
阅读全文
摘要:还好这场没打 MD什么破题 n<=100000,m<=200000的图问从s点出发能否走奇数条边到一个没有出度的点。 直观的想法:做一个bfs,$f(i,0/1)$表示从$s$出发到$i$能否走奇数/偶数条边,搜出来,找一个$f(t,1)=1$ && $ chudu(t)=0$的点做终点。 如果找不
阅读全文
摘要:n<=200000的边权树上问长度=K<=1000000的链中边数最少的。 点分治。开个桶统计各个长度的答案。 1 #include<string.h> 2 #include<stdlib.h> 3 #include<stdio.h> 4 #include<math.h> 5 #include<al
阅读全文
摘要:n<=100000的树,每个点上有个字母a-t之一,问有多少这样的链经过每个点:它的某一个排列的字母串起来是回文的。 就是有最多一个字母是奇数个啦。。这样点分算一波即可。。细节较多详见代码 1 #include<string.h> 2 #include<stdlib.h> 3 #include<st
阅读全文
摘要:n<=50000,m<=100000的图上,路径有属性Ai和Bi,问从1到n的路径中(Ai的最大值+Bi的最大值)的最小值。 双属性图论题,常用套路--定一动二。比如说这里可以先按A从小到大排序,然后依次加入图中来考虑怎么计算B。 方法一:哦,最大值最小,那不是最小生成树吗?会加边的图,那不是LCT
阅读全文
摘要:n<=1e6的树问所有路径的极差之和。 被遗忘的套路。。。以后绝对不会再忘了QAQ 只要算最大值之和即可,最小值同理。数字从大到小排序(反正都是要排序的,如果从大到小不行等会反过来试试),然后逐个考虑贡献,这样的话考虑完一个点就得把这个点周围所有的边断掉表示经过这些边的路径(即经过当前点的路径)不再
阅读全文
摘要:n<=1e5个值v,分别由<=1e5的m个变量中的1<=ki<=2个布尔变量xj(或某个变量取反)或起来组成,而所有的v异或起来为1,一个x不会在输入数据中出现超过2次,包括他和他反面。问满足该条件的布尔序列x有多少种。 如果忽略“超过两次”这个条件是难做的。。(好吧就是我看走眼了) 利用好这个条件
阅读全文
摘要:n<=200000的树,给dfs序和bfs序,问所有可能情况的平均树深。 有点懵的题。。 根据bfs序进行1-n的编号之后,可以通过在bfs序中划层来考察层数。也就是说答案和划层行动的进行的可行度息息相关。所以现在把目光放在数组$x_i$,表示i和i+1(按bfs序重编号后)是否在同一层。 首先,记
阅读全文
摘要:现有串x=11110000,y=11001100,z=10101010,通过这三个串只用与或非三种操作到达给定的串,优先级非>或>与,可以加括号,问表达式最短的里面字典序最小的是谁,有<=10000个询问。 一个串,经过某种变换,到达另一个串,这种转移关系用图论极其合适。那么问题就转化成了一个最短路
阅读全文
摘要:n<=1000,m<=30000的图,问割掉边权和尽量小的0、1或2条边使S和T不连通,输出割了哪些边,无解-1. 道理是很好懂的,先随便找S到T的一条路径,找不到输出0,找到的话这条路上至少有一条边要删,那枚举一下割谁,对剩下的图再做tarjan即可。复杂度(n*m)。 然而!!写起来是很难写的。
阅读全文
摘要:n<=50000,m<=50000的图,给s和t,问有多少点对$(a,b)$满足 嗯。 不会。 首先最短路DAG造出来,然后两个条件转述一下:条件一,$N_a$表示从s到t经过a的路径,$N_a+N_b=N_t$;条件二,在最短路DAG上A不能到B,B不能到A。 条件一就迪杰斯特拉的时候算一下N,注
阅读全文
摘要:n,m<=9,n*m的网格图,相邻的.可连边,问把所有的.连成一棵树有多少方案,%1e9。 直接矩阵树,然而高斯消元时模数不是质数没法直接除,所以利用行列式的性质,某一行乘某个数加到另一行上,这样辗转相除。 1 #include<stdio.h> 2 #include<string.h> 3 #in
阅读全文
摘要:n<=100的形如的图有多少生成树。不取模。 $f(i)=3*f(i-1)-f(i-2)+2$,VFK的题解 1 #include<stdio.h> 2 #include<string.h> 3 #include<algorithm> 4 #include<stdlib.h> 5 //#includ
阅读全文
摘要:n,m<=200,n*m的方阵,有ULRD表示在这个格子时下一步要走到哪里,有一些待决策的格子用.表示,可以填ULRD任意一个,问有多少种填法使得从每个格子出发都能走出这个方阵,答案取模。保证未确定的格子<=300。 。。。一脸懵逼地写了原本30实际20的暴力然后跪着啃了下论文 然而什么都没啃懂不如
阅读全文
摘要:n<=300000,m<=300000的图,图上只有奇环,q<=300000个询问每次问:一个区间内有多少个子区间,满足只保留编号在该区间的点以及他们之间的边,可以构成一个二分图。 终于走出了第一步。。Pi--从点i开始往前延伸最早到哪里就不是二分图了。由于这个数组是单调的,只要这个数组求出来就可以
阅读全文
摘要:n<=1000 * m<=1000的网格图(见下)问最小割。 emmm上论文 好东西 然而建边建错WA*3,调试忘删WA*1。 非常好。 1 #include<stdio.h> 2 #include<string.h> 3 #include<algorithm> 4 #include<stdlib.
阅读全文
摘要:n<=150个点,m<=150条路,每条路Ai,Bi,Di表示Ai到Bi有一条有向边,使用他前至少要走Di条路,问1到n最少走几条路。 又是n^4过150的题。。。。 不同于传统的最短路,这次的最短路包括了m个图,并且状态和走的路径数有关。所以要一个状态Can(i,j)表示能否到达点i走j步。 由于
阅读全文

浙公网安备 33010602011771号