阶段学习总结

阅读: 评论:0

阶段学习总结

阶段学习总结

这周看了搜索有关的资料和题目,大部分接触的都是模拟+搜索+剪枝,部分涉及到bfs+kmp,做题还是比较少,总结不是很到位。用bfs的题目一般都可以用dfs解决(除了最短路),codeforces比赛div3还是ab题还是以思维题为主,后面的题没有思路。div2a题一般可以出(这周俩a题都在细节出问题,测试案例没过,比如数据量应该用long long),b题可以用bfs解决,时间太短代码没有写完(一直在调a题浪费太多时间)。

[NOIP2002 普及组] 选数 - 洛谷

给n个数,挑k个数,问有几种情况k个数和为素数。

DFS试除法判断素数(数据量过大,不建议打表),bool数组避免重复选数,若选完k个:若sum为素数则ans++,并返回。从0到n开始递归,每次递归更新状态:sum,当前为第几个数,数组下标。注意递归回溯对称(标记与删除标记)

求细胞数量 - 洛谷

给出一个n行m列的矩阵,矩阵中连续的(上下左右)非零数看作一个块,求有多少个块

bfs,开两个数组记录坐标偏移量,广搜中判断点非零且没有标记,若符合,则将该点入队,答案++,并标记,循环(队列非空),记录队首元素并弹出,将四个偏移量依次进行判断,在区域内且未被标记且元素非零则入队并标记。循环结束后可得到答案

海战 - 洛谷

与上题求细胞数量一样,唯一区别是加了一个判断条件,若#不是方形则输出bad…

与上题求细胞数量一个思路,再加一个判断条件,判断当前格与右,下,右下构成的方格是否存在#为3的情况,若存在就输出bad,否则再进行bfs。(不算是剪枝)

[USACO10OCT]Lake Counting S - 洛谷

依旧考察bfs,坐标偏移量改为8个即可。

Problem - 2717

最短路问题,求最小步数,bfs。之前的bfs基本都是遍历所有坐标,而此次是求最短路,一旦满足结束条件就终止。结束条件:若pos==n,则输出step,这样不管push进多少种情况,总是最先输出最短路。不满足结束条件:三种走法push进+标记,三种走法作为一大类,后退的作为一大类,走哪种前先进行判断pos和n的位置,pos<n,走三种,pos>n只能后退,并标记已走过的位置,达到剪枝的效果。

3414 -- Pots

是上一题的进阶版。最短路问题,bfs。模拟,把a,b壶中水量作为状态,每次操作看作状态变化,同时考虑操作的条件以及操作后的a和b的状态标记,达到剪枝效果。代码中涉及存储的一部分还未读懂,但bfs部分已理解(说实话,读题之前压根一点头绪都没有,看完题解豁然开朗,还可以这样进行模拟??长见识了,感觉所有最短路问题都可用bfs。)

本文发布于:2024-02-02 14:08:01,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170685408044313.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:刷题日志
下一篇:4.10 训练周记
标签:阶段
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23