随笔分类 - dfs
摘要:题意 给你一些串,还有一些询问 问你第x个串在第y个串中出现了多少次 思路 对这些串建ac自动机 根据fail树的性质:若x节点是 trie中root到t任意一个节点 的fail树的祖先,那么x一定是y的子串 而x在y中出现的次数为 以x为fail树中的根节点的子树中,有多少个节点是trie树中根节
阅读全文
摘要:题意: n<=28个人,分成人数相同的两组,给你2*n*2*n的矩阵,如果(i,j)在不同的组里,竞争力增加v[i][j],问你怎么分配竞争力最 4s 思路: 枚举C(28,14)的状态,更新答案即可 代码:
阅读全文
摘要:题意: 有一棵点数为 N 的树,以点 1 为根,且树点有边权。然后有 M 个 操作,分为三种: 操作 1 :把某个节点 x 的点权增加 a 。 操作 2 :把某个节点 x 为根的子树中所有点的点权都增加 a 。 操作 3 :询问某个节点 x 到根的路径中所有点的点权和。 思路: 处理出这棵树的欧拉序
阅读全文
摘要:题意: 有一棵n个节点的二叉树,1为根节点,每个节点有一个值wi。现在要选出尽量多的点。 对于任意一棵子树,都要满足: 如果选了根节点的话,在这棵子树内选的其他的点都要比根节点的值大; 如果在左子树选了一个点,在右子树中选的其他点要比它小。 思路: 按照根节点-右子树-左子树的顺序建立dfs序列,然
阅读全文
摘要:题意: n道题,每道题有ai和bi,完成这道题需要先完成若干道题,完成这道题可以得到分数t*ai+bi,其中t是时间 1s, n<=20 思路: 由n的范围状压,状态最多1e6 然后dfs,注意代码中dfs里的剪枝, 对一个状态statu,因为贪心的取最大值就行,所以及时剪枝 代码: 当时写不出来真
阅读全文
摘要:题意: 给你一棵无根树,每个节点有个权值$a_i$,指定一个点u,定义$\displaystyle value = \sum^v a_i*dist(u,v)$,求value的最大值 n,ai<=2e5 思路: 其实就是找一个节点作为根满足上述最大的value 直接枚举是$O(n^2)$的,肯定不行,
阅读全文
摘要:题意: 4种硬币买价值为V的商品,每种硬币有numi个,问有多少种买法 1000次询问,numi<1e5 思路: 完全背包计算出没有numi限制下的买法, [HAOI2008]硬币购物否
阅读全文
摘要:题意: 求最小生成树的个数 思路: 网上很多题解都是矩阵树, 由克鲁斯卡尔的步骤可以知道mst的每一种边权选的条数是固定的,所以我们dfs具体每种权值选哪几条并不会成环的方案数,相乘即可 dfs是参考网上的,我是不会的 代码:
阅读全文

浙公网安备 33010602011771号