随笔分类 -  搜索------DFS

摘要:次元传送门:洛谷P1514 思路 可以证明如果有解 那么每个蓄水池可以覆盖到的干旱区必定是线段 证明: 举个栗子 8 9 8 7 9 7 6 9 6 明显到不了中间的点 如果不是连续的线段 中间肯定有一个点到不了 无解 那么我们就可以从每个开头城市进行DFS 并且同时递归计算每个点可以到达的最左边和 阅读全文
posted @ 2018-10-30 19:21 Nanchtiy 阅读(160) 评论(0) 推荐(0)
摘要:题目来源:洛谷P1351 思路 由题意可得图为一棵树 在一棵树上距离为2的两个点有两种情况 当前点与其爷爷 当前点的两个儿子 当情况为当前点与其爷爷时比较好操作 只需要在传递时不仅传递父亲 还传递爷爷即可 当情况为两个儿子时 其实我们只需要的是所有儿子中比较大的两个 所以我们在遍历当前点的所有儿子时 阅读全文
posted @ 2018-10-27 21:25 Nanchtiy 阅读(167) 评论(0) 推荐(0)
摘要:题目来源:洛谷P2296 思路 一开始看还以为是一道水题 虽然本来就挺水的 本道题的难点在于如何判断是否路径上的点都会直接或者间接连着终点 我们需要在一开始多建一个反向图 然后从终点DFS回去 把路径上的点标记 DFS完之后遍历所有的点 如果当前点没有被标记 说明其不会直接或者间接连着终点 那么我们 阅读全文
posted @ 2018-10-26 21:33 Nanchtiy 阅读(172) 评论(0) 推荐(0)
摘要:思路 看到n using namespace std; define maxn 110 int n,num,ans=1e9+7; int map[maxn][maxn];//存图 struct sq { int x1; int x2; int y1; int y2; int col; bool vi 阅读全文
posted @ 2018-10-02 12:58 Nanchtiy 阅读(383) 评论(0) 推荐(0)
摘要:洛谷P1074:https://www.luogu.org/problemnew/show/P1074 思路 这道题一看就是DFS 打一个分数表方便后面算分 我用x y z数组分别表示行 列 宫 是否有放置数字 用cnt结构体中no和zero分别表示每行行号和每行的零的数量(下面会讲到为什么) 我们 阅读全文
posted @ 2018-09-29 20:05 Nanchtiy 阅读(226) 评论(1) 推荐(1)
摘要:洛谷P1120:https://www.luogu.org/problemnew/show/P1120 思路 明显是搜索题嘛 但是这数据增强不是一星半点呐 我们需要N多的剪枝 PS:需要先删去超出50的木棍 首先我们可以想到枚举每个小木棍的长度来搜索 但是直接枚举肯定会超时的 所以我们想到优化剪枝 阅读全文
posted @ 2018-09-28 22:07 Nanchtiy 阅读(515) 评论(0) 推荐(0)
摘要:洛谷P1731:https://www.luogu.org/problemnew/show/P1731 思路 三重剪枝 每次枚举半径和高时 是从下一层的半径和高到还剩下的层数 因为每层都要比下面大1 代码 #include<iostream> #include<cmath> using namesp 阅读全文
posted @ 2018-09-27 21:48 Nanchtiy 阅读(634) 评论(0) 推荐(0)