随笔分类 - ACM / 搜索 / DFS
摘要:题目链接:POJ 1426 【Find The Multiple】 思路 输入数据,直到0时停止计算,并在循环输入内,每次计算前初始化所有需要用到的变量或者数组,避免影响计算结果。 从1开始依次枚举每一位是0还是1。同时使用取模的计算公式对数字进行优化防止数据溢出,(a + b) % mod = (
阅读全文
摘要:题目链接:油滴扩展 思路 枚举油滴滴下的顺序,然后依次判断每个油滴扩展的半径。然后每次计算出当前油滴能扩散的最大半径,通过使用当前油滴与边长的距离。 代码 #include <bits/stdc++.h> using namespace std; const int maxn = 10; const
阅读全文
摘要:题目链接:二叉苹果树 思路 本题使用链式向前星存储树上的边,然后DFS搜索+简单dp。 dp数组,dp[i][j]表示节点i及其子树保留k根树枝得到的最大苹果数。son数组存储当前节点的孩子节点的编号和当前节点与孩子节点之间的树枝上的苹果个数。 对于dp递推公式,我们可以对每一个节点逐个分析,对于每
阅读全文
摘要:题目链接:没有上司的舞会 思路 这是一道树形dp的入门题,也可以用DFS+记忆化搜索来理解,要注意的地方是,输入关系时先输入的l为后输入的k的下属,所以存储边时需要注意。 在面对图论或者树的存储时通常可以使用链式向前星(如下代码中的add函数)或者STL中的vector存储边。 链式向前星和vect
阅读全文
摘要:题目链接:八皇后 思路 这是一个典型的搜索题目,从前往后依次枚举行数,从第一行开始依次枚举皇后的纵坐标,并判断当前坐标是否满足题目要求,满足题目要求则标记将答案存储,并继续向下枚举下一行。 由分析可得每条对角线上的任意一点的横纵坐标满足公式i - j + n的值与对角线上其他点的公式值相等,n为棋盘
阅读全文

浙公网安备 33010602011771号