随笔分类 - 图论
摘要:二分答案,大于二分值的边直接不走,看最后是否存在一条路径即可 c++ include include include include include using namespace std; define debug(x) cerr 1; if(SPFA(g[mid])) { ans = g[mid
阅读全文
摘要:设dp[i][j]表示到第i个点一共经过j个点时的最小路径长度,按拓扑序转移就好了 考虑到到达第i个点并且目前走过的点数量固定时,显然不需要知道以前走的是哪些点,只要保证此时路径长度最短,就会得到更优的答案 注意到k不会超过int,所以数组不需要开longlong(开了会爆内存。。。)判断的时候强转
阅读全文
摘要:这道题是一类树的瓶颈问题。 题意是求两点路径上的最大的最小边(在图中,两点之间路径不只一条),那么肯定这条 最小边存在于最大生成树上 。(反证法证明) 同理, 若求最小的最大边,这条最小边一定在最小生成树上 因此我们可以将图的问题转化为树上问题。树上两点之间的路径一定经过lca,因此这条路我们可以由
阅读全文
摘要:两个问题都需要按照 每个节点的相邻点 来思考解法。 把符合题目要求的,可产生联合权值的有序点对,称为 联合点 。 第一问 每个节点的子节点(相邻点)之间,彼此组成联合点,具体看图。 可以比较每个节点的相邻点的权值,得到最大子节点和次大子节点。 他们的联合权值就是这个节点所能 发现 的最大联合权值。
阅读全文
摘要:注意: 矩阵存图,遍历边的时候首先确定边存在,即g[u][v]要有值,无值说明这条边不存在,不应该用来更新最短路 他问的是公共路径最长能有多长,就是尽量让两条路的公共路径长度之和最大,别理解错题意,比如说题目背景里面的描述是:一起走的时间尽可能的长。 看起来貌似两个人以相反的路径走过相同的一段路不算
阅读全文
摘要:注意几点 1.看清楚是有向还是无向图 2.dis初始值设为0x3f3f3f3f可能会不够 还是设为0x7fffffff吧,具体来说你要看题目给的范围,若是说边权和 include include include const int MAXN = 100000 + 10; const int MAXM
阅读全文
摘要:加深了我对割点的理解。。。 当割点判定法则成立时,即low[v] = dfn[u],代表切断u和v这条边后,v会和u分开 若一个点u连接的多条边都有这个法则的成立,则说明删除u点后形成了多个区域 这多个区域两两都不能访问,而这些区域的大小其实就是搜索树中v的子节点 所以要不断更新“目前已经被切割出去
阅读全文
摘要:桥判定法则:无向边(x,y)是桥,当且仅当搜索树上 存在 x 的一个子节点y,满足 $$dfn[x] include include include include include using namespace std; define debug(x) cerr include include i
阅读全文
摘要:费了半天时间玩拓扑排序,然而发现有结论可以直接用: 在一个DAG中,若有且仅有一个点的出度为0,则其他所有的点都可以遍历到这个点,否则图中不存在能被所有的点遍历到的点 证明。。。反证法什么的来一下,感性理解就好了
阅读全文
摘要:注意 求子树时,要用子树dfs序连续这个特性,但是 不能用 如下方法(sub表示x的子树中最大的dfs序): 因为这样会无法处理叶子节点(直接返回了) 最好的办法是用size,直接算出来 细节比较多,都在注释里 需要注意的是dfs预处理时,一些特殊的写法 比如说,dfs1的时候,把一个点的父节点存在
阅读全文
摘要:虽然是模板但是却提醒我有向图一定要 试着从每个点出发 ,不仅仅是因为图不一定连通,更有可能是只从1号点出发哪也去不了的情况 c++ include include include include include using namespace std; define debug(x) cerr
阅读全文
摘要:看出不等式之后,通过移项套模型 大概不等式模型是这样的:$x_v include include include include using namespace std; define debug(x) cerr dist[x] + w) { dist[v] = dist[x] + w; cnt[v
阅读全文
摘要:把人和床分开考虑,题目说每个人只能睡和自己直接认识的人的床,就是一种边的关系,但是并不是人与人,实际上人与人之间连边是很难处理的,但是如果把人和床连边,就是一张二分图,左右两边分别是不同的东西,然后求一下最大匹配就好了 没思路的时候换换角度,看能不能搞出什么“新东西”来 注意多组数据 不超时的情况下
阅读全文

浙公网安备 33010602011771号