上一页 1 ··· 35 36 37 38 39 40 41 42 43 ··· 75 下一页
摘要: 原题链接 考察:搜索 思路: 组合式枚举,然后check.可以用并查集检查是否为一条通路...很简单...但是我一开始想的是直接存储每个点到达的其他点然后字典序枚举路.这样会漏解比如c g f.... 最后答案是80...蓝桥杯提交不了.... 1 #include <iostream> 2 #in 阅读全文
posted @ 2021-04-13 20:55 acmloser 阅读(81) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:记忆化搜索 思路: 注意f数组不能初始化为0,然后通过0判定是否搜过.因为不一定能到终点..... 1 #include <iostream> 2 #include <cstring> 3 using namespace std; 4 typedef long long LL; 5 阅读全文
posted @ 2021-04-13 13:57 acmloser 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:记忆化搜索 思路: 注意这道题只需要覆盖最下面一行的点即可....对于每个第一行的点求出它能覆盖的最后一行的最左边和最右边.然后做区间覆盖即可.如果一个个点求会TLE.我们可以发现如果确定了一个点为起点,它能覆盖的左右端点都是确定的.所以可以用记忆化搜索. 但是这道题如何标记搜过的点 阅读全文
posted @ 2021-04-13 08:51 acmloser 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 原题连接 考察:dfs搜索 思路: 注意这道题不能预处理每个圆覆盖的点及半径.假设我们先放a,a的半径为Ra,假设c点与a点距离>Ra但c的半径会受到a的覆盖范围的影响,也就是说Rc只能取dist-Ra.此时c的半径就和预处理的半径不同,不一定能覆盖预处理时判定能覆盖的点. 所以这道题只能全排列时计 阅读全文
posted @ 2021-04-12 20:30 acmloser 阅读(61) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:枚举 错误思路: 爆搜,结果第九个点TLE.采取多个剪枝依旧第九点TLE.... 正确思路: 预处理合法的月+日+年.对于每一个字符串,检查是否有与他在有数字的位数上相同的合法日期,如果有就ans++ 坑点:质数不包括1与0,这两个一定要先赋值1!!!! 实测954ms 1 #inc 阅读全文
posted @ 2021-04-12 13:42 acmloser 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:二分+二分图判定 or 带权并查集+贪心 思路一: 二分+二分图判定.由题目可知我们要求最大矛盾的最小值.最小值可以通过二分枚举,那么关键是如何check.首先容易想到>最小值的两个人一定不能在同一集合.需要将它们分别放在不同的监狱.那么问题来了:这样存放可能会导致某些破坏最小值合法 阅读全文
posted @ 2021-04-12 01:30 acmloser 阅读(103) 评论(0) 推荐(0) 编辑
摘要: bfs搜索模型. 最常见的模型:flood fill. 一般用于计算连通块.需要标记哪些点走过,所以dfs求flood fill时不需要恢复现场. bfs通常应用:最短路 根据bfs的特性第一次走到该点就是最短距离. 多源bfs.多个起点,求到达其他点的最短距离.思想是建立超级源点.求超级源点到其他 阅读全文
posted @ 2021-04-11 09:22 acmloser 阅读(105) 评论(0) 推荐(0) 编辑
摘要: bfs也用于求最短路的问题.但是一般bfs有个限制是边权必须相同.这样才能保证第一次到达此点,此点的距离就是最短距离(即入队的时候最短距离已经确定了) 证明: bfs队列里符合单调性和二段性. 一般用数学归纳法证明.当队列里只有一个点是正确的.假设队列里有n个点,队列与源点距离分布为 x x x.. 阅读全文
posted @ 2021-04-11 00:10 acmloser 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:双端队列bfs 思路: 双端队列常用于距离只有0,1的情况.当距离为0时,更新的点放在队头.当距离为1时,更新的点放在队尾. 判断01距离不用写冗长的if代码.可以参照方向数组预设距离为0的斜杠应该有的方向. 这里当出队的距离才是确定了此点的最短距离. 1 #include <ios 阅读全文
posted @ 2021-04-10 23:57 acmloser 阅读(70) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:多源bfs 思路: 模板题.单纯记录证明过程.正解就是将所有值为1的点作为起点.bfs更新到达其他点的距离. 实际上相当于建立一个超级源点.该源点到其他为1的点距离是0.每次bfs取出队头的点一定是离源点距离最近的点.再以此更新到其他点的距离.这种做法很像dijkstra.但是区别是 阅读全文
posted @ 2021-04-10 17:14 acmloser 阅读(54) 评论(0) 推荐(0) 编辑
上一页 1 ··· 35 36 37 38 39 40 41 42 43 ··· 75 下一页