dfs
文章平均质量分 83
qkoqhh
这个作者很懒,什么都没留下…
展开
-
codeforce 888E
EDU的题目就是水啊,这次A了5题,算是目前最多的一次吧。。然后E还是有些经典的。。2分+dfs再合并,这种题虽然以前是见过很多次却没有去实现过,所以把自己的代码贴一下合并的时候先排序再二分能够有效地降低复杂度//#include#include#include#include#include#include#include#define inc(i,l,r) for原创 2017-11-10 13:09:25 · 616 阅读 · 0 评论 -
cf411D(dfs/dp+离线+二分)
这个题确实比较综合,也非常巧妙。 。首先对每棵树,需要算出以每个点为根的最大深度d,这样连边的时候就能直接更新直径。。这个可以用2遍dfs上搞搞下搞搞就行。。主要维护前2大深度。。然后如果直接统计答案的话显然是不行的。。。但是如果和起来算有个问题是可能经过这条外加边形成的直径会比原直径小,那么先和起来算之后再关注比原直径小的情况。。很容易想到的一个做法是先对d排序,求前缀和,然后枚举其中一...原创 2018-10-04 01:24:54 · 209 阅读 · 0 评论 -
hdu6403(基环树+dfs+DP)
首先图得建得出来才有后话(反正窝是建不出来图是这样建的。。从反面数字向正面数字连边,然后题目转化成反向最少的边使所有点的入度不大于1然后就要讨论一下了。。根据容斥原理,对一个连通块如果边数大于点数那么必定有点是入度大于1的。。所以每个连通块只能是树或者基环树。。树的话可以根据容斥原理得到有一个点的入度是0的,所以可以枚举这个入度为0的点,转成有根数,根据有根树的方向将边反向即可。。实现...原创 2018-08-17 12:57:31 · 784 阅读 · 0 评论 -
nowcoder多校6G(最小割理解+dfs)
这个题出得比较新颖的。。简单地考验对最小割的分析。。感觉今年区域赛也可能会出这种。。首先在完全图上跑最大流其实也即跑最小割。。。然后将s和t放在两旁可以发现割中间点之间的边显然是没什么太大帮助的。。所以只能割连s的所有边或者连t的所有边。。然后可能会有个顾虑就是中间点之间的边会远远小于割去的边,其实边权是由距离形成的所以边权差并不会太大。。然后问题就变成了求每个点到所有点的距离和。。这个优...原创 2018-08-10 20:12:21 · 161 阅读 · 0 评论 -
bzoj2878(树DP+暴力dfs)
第一问可以考虑树DP。。设g[i]从i点开始为往上走的期望,d[i]为往下走期望,son[i]为儿子个数往下走其实比较好处理。。就是加起来除以son[i]。。往上走要考虑2种情况。。一个是再往上走,一个是往父亲的另一个儿子走。。再往上走需要知道g[f[i]],往另一个儿子走需要知道他的d,所以需要先算出d,再从上往下算g。。然后答案是d和g的加权平均。。权值是往下走的方案数(即儿子...原创 2018-07-27 11:38:58 · 181 阅读 · 0 评论 -
bzoj4034(dfs序+BIT/链剖+线段树)
记得以前是用链剖+线段树做的,在链剖的时候顺便维护dfs序,思路简单实现起来就有点麻烦了。。可参照:http://www.cnblogs.com/onlyRP/p/5041702.html回顾这题发现其实主要是2操作针对子树而3操作针对链,而且唯一的询问操作3的链其实是到根的权值和,那么就想能不能直接dfs序进行操作呢?做一遍dfs序后我们可以用前缀和求出权值和,操作1修改点权值就原创 2018-01-07 10:38:18 · 254 阅读 · 0 评论 -
codeforce 620E(dfs序+线段树+位运算)
个人感觉是道不错的题。。很好的帮我理解了dfs序与链剖之间的关系。。两者都是把树结构转化成区间的方法,并且通常需要配合数据结构加以维护。但dfs序侧重与顺序遍历,能够处理子树问题;链剖侧重重链处理,能够处理树中2点之间的链。看来dfs序有必要好好重视一番。。求dfs序后转化成区间,然而这次已经不是单点修改了。。而是子树一起修改,那么就只能用线段树进行维护了。。一开始的思路是记录关键值然后进原创 2017-12-28 21:47:11 · 234 阅读 · 0 评论 -
poj3321(dfs序+BIT)
好像dfs序做得不多啊。。然后肯定忘光了。。要捡回来。。记录完时间戳in和out之后区间[in,out]就可以代表整个子树了,然后单点修改可以用BIT。。#include#include#include#include#include#include#define inc(i,l,r) for(int i=l;i<=r;i++)#define dec(i,l,r) for原创 2017-12-28 19:16:04 · 164 阅读 · 0 评论 -
poj 1873
陈年WF题,纪念一下。。说是练计算几何。。然而这题的主要思路是dfs+剪枝,其实学会恰当的剪枝是非常重要的。。。(到时或许全程就靠这个了?qaq我也想学A叉S搜索orz暴力能300ms以内也算不错了,个人认为本题能够优化一点的地方就是把点都按照价值排序。。回溯时优先考虑不砍树或尽可能砍价值低的树,这样最优方案能够早些出来来排除很多不必要的搜索。。当然标号得记好。。。然后代码看起来十分不原创 2017-12-15 21:05:47 · 222 阅读 · 0 评论 -
NEERC2018A(bfs+dfs+贪心+记忆化)
链接:http://codeforces.com/contest/1070题意:求出最小的正整数,使它满足数位和为s,且可以被d整除一道不错的题。。这个显然可以把(d,s)作为状态来存,可是数字太大存不下,但是存个长度还是可以的,然后直接做bfs之后就可以得到目标数字的长度了。。然而这个数字没办法确定,因为转移的时候不能把之前的决策方案存下来,即当前状态的高位数字我们并不知道,这样导致...原创 2018-10-24 21:32:48 · 252 阅读 · 0 评论