ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

2021.2.4做题小结

2021-02-04 21:34:01  阅读:196  来源: 互联网

标签:2021.2 题意 com 给定 搜索 做题 思路 小结 problem


1.[luogu]P3376 【模板】网络最大流

题意:RT

思路:模板题

注意细节啊,卡了好久

2.可达性统计

题意:给定一张N个点M条边的有向无环图,分别统计从每个点出发能够到达的点的数量。

思路:f(x)表示x能够到达的点的集合,用 N 位二进制数(bitset)存储每个 f(x) ,其中第 i 位表示 x 能否到 i。知如果有一条边 (u,v) 则 v 能到达的点 u 一定也可以到,所以 f(x)|=f(v)。记忆化搜索可做

或者先按照拓扑排序算法求出拓扑序,然后按照拓扑序的倒序进行计算

3.小猫爬山

题意:http://fzuoj.xndxfz.com/problem/2062

思路:深搜裸题

4.「POJ2676」Sudoku

题意:给定一个不完整9×9 数独,未填部分用0表示,恢复数独。

思路:深搜,判断在那个方格值得注意:int pos1=ceil(x/3.0);int pos2=ceil(y/3.0);(pos1-1)×3+pos2;即为宫格标号。

注意:当跳转行的时候,不仅考虑下一行,还有考虑上一行

5.「POJ2248」Addition Chains

题意:给定一个数n,要找出一个最短的序列,满足: 1、第一个元素为1,最后一个元素为n 2、序列为升序 3、每个元素都是由它之前的两个元素(可以是同一元素)相加得到

思路:迭代加深,当搜索树的分支随深度增大得很快的时候,最适合用迭代加深

这题正好符合迭代加深的要求:搜索树每个节点扩展的情况很多,且答案节点位置较浅。

用序列中已有的数去构造后续的数,一次dfs只构造dep个。有一个强剪枝是ans[i]<=ans[i-1]×2,若已知ans[k],迭代加深的最大深度为maxd,则后面最多还有maxd-k项,也就是若 ans[k]×2^k 小于 n 则在maxd次之内一定找不到答案

6.「TYVJ1340」送礼物

题意:从给定的 N 个数中选择几个,使它们的和最接近 W

思路:搜索 选/不选 当前位置的数-->2^45的复杂度,太高

观察部分分,发现 2^26 的复杂度是可以过的 ,所以考虑折半搜索,将礼物分成两半。

首先,搜索出从前一半礼物中选取若干个,可能达到的 w 之间的所有重量值,存放在 s 数组中,并对 s 数组进行排序。然后进行第二次搜索,尝试从后一半礼物中选出一些。对于每个可能达到的重量值 val,在 s 数组中二分查找 <= w-val 的数值中最大的一个,用二者的和更新答案即可(蓝书p112)

注意:两次dfs的函数名不要写混了!(调了我好久)

7.「BJWC2010」矩阵距离

题目:http://fzuoj.xndxfz.com/problem/2742

思路:多源bfs,目的是保证队列的单调性

8.「POJ3322」Bloxorz

题目:http://fzuoj.xndxfz.com/problem/2758

思路:step[x][y][statu]记录从初始位置到达当前位置,当前形态的最少步数,bfs硬刚即可

注意:方向数组的运用

标签:2021.2,题意,com,给定,搜索,做题,思路,小结,problem
来源: https://www.cnblogs.com/wyb-sen/p/14375064.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有