随笔分类 -  搜索-DFS

摘要:[Codeforces 1214D]Treasure Island(dfs) 题面 给出一个n m的字符矩阵,'.'表示能通过,' '表示不能通过。每步可以往下或往右走。问至少把多少个'.'变成' ',才能让从(1,1)出发不能到达(n,m) n×m106 分析 第一 阅读全文
posted @ 2019-09-04 22:02 birchtree 阅读(512) 评论(5) 推荐(0) 编辑
摘要:[Codeforces 163D]Large Refrigerator (DFS+剪枝) 题面 已知一个长方体的体积为V,三边长a,b,c均为正整数,求长方体的最小表面积S V以质因数分解的形式给出 分析 暴力做法很容易想到,按照质因子的指数枚举a,b,然后就能直接算出c,然后就可以得到表面积S=2 阅读全文
posted @ 2019-07-14 21:00 birchtree 阅读(246) 评论(0) 推荐(0) 编辑
摘要:题面 "传送门" 分析 看到约数之和,我们首先想到约数和公式 若x=i=1npiki,则x的约数和为i=1nj=0kipij 那么我们可以DFS枚举x的质因数分解式,然后判断求出的约数和是否等于s 具体 阅读全文
posted @ 2019-01-20 09:56 birchtree 阅读(153) 评论(0) 推荐(0) 编辑
摘要:Meet in the Middle 总结 1.算法模型 1.1 Meet in the Middle算法的适用范围 如果将搜索的路径看成一个有向图,Meet in the Middle 算法适用于求有向图上从A到B,且长度为L的路径数。 换句话说,Meet in the Middle 算法适用于求 阅读全文
posted @ 2018-12-17 19:36 birchtree 阅读(2976) 评论(0) 推荐(1) 编辑
摘要:题面传送门分析此题做法很多,树形DP,DFS序+线段树,树链剖分都可以做 这里给出DFS序+线段树的代码 我们用线段树维护到根节点路径上节点权值之和的最大值,以及取到最大值的节点编号x 每次从根节点走到x,将点归0,再把最大值累加 然而,修改操作怎么做呢? ... 阅读全文
posted @ 2018-08-22 20:17 birchtree 阅读(181) 评论(0) 推荐(0) 编辑
摘要:题面 传送门 分析 首先,直接搜索肯定会TLE 很容易想到用迭代加深的方法,限定搜索深度 但是,这样仍然不够,需要用启发式的方法优化 我们设计一个估价函数f(x)=g(x)+h(x)f(x)=g(x)+h(x) g(x)g(x)是初始状态到当前状态的实际代价 h(x)h(x)是当前到目标的估计代价 阅读全文
posted @ 2018-08-17 08:30 birchtree 阅读(191) 评论(0) 推荐(0) 编辑
摘要:题面传送门 题目大意:给定初始根节点为1的树,有3种操作 1.把根节点更换为r 2.将包含u,v的节点的最小子树(即lca(u,v)的子树)所有节点的值+x 3.查询v及其子树的值之和分析看到批量修改子树,我们想到将树上操作转化为区间操作 通过DFS序我们可... 阅读全文
posted @ 2018-07-29 17:11 birchtree 阅读(202) 评论(0) 推荐(0) 编辑
摘要:题面传送门 题目大意: 给定一棵树,每个点都有权值,边的长度均为1,有两种操作 操作1:将节点u的值增加x,并且对于u的子树中的任意一个点v,将它的值增加x-dist(u,v)*k, dist(u,v)表示u,v之间的距离 操作2:查询节点u的值分析这类题目... 阅读全文
posted @ 2018-07-29 16:05 birchtree 阅读(198) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示