随笔分类 -  dfs

P4189 [CTSC2010]星际旅行 (退流思想)
摘要:P4189 [CTSC2010]星际旅行 分析: 对于只求一个点来说,因为题中保证了每个星球的hi大于等于度数。 也就是说,从一个点出发,保证可以遍历每一条边。 于是贪心地将能遍历到的边都遍历了,回溯的时候,将两个端点的h取min,累入答案里(在这两个点中重复走min次,贡献是min*2) 但题中要 阅读全文
posted @ 2019-11-06 20:58 rua-rua-rua 阅读(157) 评论(0) 推荐(0)
机房测试:折半+二分+判环+树上开桶
摘要:T1: 分析: 如果x小的话,就直接背包。这道题中n很小,60%可以直接3^10暴搜,25的呢?明显是折半嘛。 先搜前一半的物品,用map记录能拼凑出的种类数,再搜后一半物品,直接查询统计答案即可。 #include<bits/stdc++.h> using namespace std; #defi 阅读全文
posted @ 2019-11-06 20:26 rua-rua-rua 阅读(174) 评论(0) 推荐(0)
机房测试模拟2:模拟+数学+数位dp
摘要:T1: 分析: 画图模拟,发现折叠后的长度会变成折叠位置左右两部分取max,难点在于:折叠后找不到对应的点在哪个位置。 因为n很大,但其实很多位置都是用不到的,所以处理m个操作。 一次操作后,可能会影响到后面的所有操作的位置,于是将操作离线,一次操作后将后面所有将要用到的操作位置都更新。 怎么更新? 阅读全文
posted @ 2019-10-24 22:09 rua-rua-rua 阅读(220) 评论(0) 推荐(0)
机房测试7:gift (树形背包)
摘要:题目: 分析: 分数形式的套路是0/1分数规划:二分一个答案,将式子化简,转换为判断能否选出部分点使得 sigma(b[i]-c[i]*mid)>=0 在这道题中,因为有了依赖关系,而依赖关系不会成环,将依赖关系连边,会成为一棵树,只需要在这颗树上跑树形背包即可。 树形背包:对于一个点v,如果要选v 阅读全文
posted @ 2019-10-10 08:58 rua-rua-rua 阅读(160) 评论(0) 推荐(0)
机房测试7:paint(分治+st表)
摘要:题目: 分析: 与noip2018 T1十分相似,那道题可以看做这道题只能横着涂,具体思路是: 第一次先选取最小的高度minn,让所有高度都减去minn,1~n的连续段就被分成了许多块,对于每一个块重复上述过程,直到所有的柱子都为0。 这种过程类似于递归处理块,可以用dfs解决。 对于区间l~r,在 阅读全文
posted @ 2019-10-07 21:45 rua-rua-rua 阅读(202) 评论(0) 推荐(0)
机房测试3:三角tri(dp预处理+二分+dfs剪枝)
摘要:题目: 分析: 考虑最暴力的暴搜,怎么才能优化呢? 如果我们确切地知道第k大的路径权值和有多大,那么在dfs里面加一个限制就可以求出所有前k大的路径了。 很显然答案是满足单调性的。 可以二分一个答案,dfs一遍,看满足这个答案的有多少条路径,如果超过k条,就往大的走。 最后把二分出来的答案跑一遍df 阅读全文
posted @ 2019-10-05 11:43 rua-rua-rua 阅读(183) 评论(0) 推荐(0)