算法-dfs
FawkesLi
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
poj 3700 二分套dfs
先看第一个tle的思路,就是直接暴力的搜索,但是如果搜索的深度非常大,就会tle int n, a[55], ans; int nn[2][55][55], l[2][55], vis[55];//0为降序,1为升序 void dfs(int x, int dir, int now, int sum) { if (now == n) { ans = min(ans, sum); return; } if (sum + 1 >= ans)return; if (l[dir][x] ==原创 2020-06-21 21:03:50 · 273 阅读 · 0 评论 -
poj 1167 dfs
为什么启发式搜索的题书上说是迭代加深??? 思路跟大多数题一样,都是先把原问题进行处理,把处理过的数据再抽象成算法问题,因为原问题不好直接深搜,所以要先处理 注意启发式剪枝的>=ans就剪枝,而不是>才剪枝 注意题目上说了可以有多条线路的时间是一样的(两条线路间隔都是5) #include <cstdio> #include <iostream> #include <iomanip> #include <string> #include <c转载 2020-06-21 13:24:12 · 202 阅读 · 0 评论 -
试题J:郊外植树 注意sort之后位置改变了
正确的方法只有一个,作物的方法千奇百怪 题意: 小明和朋友们一起去郊外植树,他们带了一些在自己实验室精心研究出的小树苗。 小明和朋友们一共有 nn 个人,他们经过精心挑选,在一块空地上每个人挑选了一个适合植树的位置,总共 nn个。他们准备把自己带的树苗都植下去。 然而,他们遇到了一个困难:有的树苗比较大,而有的位置挨太近,导致两棵树植下去后会撞在一起。 他们将树看成一个圆,圆心在他们找...原创 2020-04-30 11:48:43 · 386 阅读 · 1 评论 -
poj 2010 (二分加搜索)关于深搜的一种优美的写法
#include <iostream> #include <cstdio> #include <iomanip> #include <string> #include <cstdlib> #include <cstring> #include <queue> #include <set> #includ...原创 2020-04-25 14:30:13 · 226 阅读 · 0 评论 -
nyoj 353
读字符类型的迷宫的时候要一行一行的读原创 2019-11-16 16:36:05 · 159 阅读 · 0 评论 -
poj 3050
给定一个5*5的地图,每个格子上有一个数字。从一个格子出发(上下左右4个方向),走5步将数字连起来可以构造出一个6位数。问该地图可以构造出多少个不同的6位数。 1.看成不能走已经走过的路了,导致5分钟没有写完代码 (poj的c++98是真的难受,没有unordered_set,连hash_set都没有) #include <iostream> #include <cstdio&g...原创 2019-11-07 21:54:16 · 206 阅读 · 0 评论 -
poj 3669
bfs的题 因为每次都模拟流行砸下来,tle一次,(应该标记每个点被砸的时间) 因为没有标记走过的点不能再走,tle了一次,(之前认为走过的点应该可以再走,其实仔细想的话,走过的点一定是不能再走的) 因为没有提前判断必死的情况,tle一次, 因为题上说0 ≤ Xi ≤ 300; 0 ≤ Yi ≤ 300,而我实际代码写成了 if (temp.x < 0 || temp.x > 300 ...原创 2019-11-07 09:56:16 · 231 阅读 · 0 评论 -
poj 3009 (dfs)
刚开始看到最短路,第一反应是bfs,但是题中说明可以破坏路障,所以需要保存状态,bfs保存状态很困难,所以改用dfs, 1.第一次没注意破坏的障碍应该回溯,所以wa 2.第二次用dfs的时候保存当前状态的时候用了全局变量,所以一直没调出来。 #include <iostream> #include <cstdio> #include <iomanip> #inc...原创 2019-11-06 20:59:09 · 386 阅读 · 0 评论
分享