算法-dfs
FawkesLi
这个作者很懒,什么都没留下…
展开
-
poj 3700 二分套dfs
先看第一个tle的思路,就是直接暴力的搜索,但是如果搜索的深度非常大,就会tleint 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 · 207 阅读 · 0 评论 -
poj 1167 dfs
为什么启发式搜索的题书上说是迭代加深???思路跟大多数题一样,都是先把原问题进行处理,把处理过的数据再抽象成算法问题,因为原问题不好直接深搜,所以要先处理注意启发式剪枝的>=ans就剪枝,而不是>才剪枝注意题目上说了可以有多条线路的时间是一样的(两条线路间隔都是5)#include <cstdio>#include <iostream>#include <iomanip>#include <string>#include <c转载 2020-06-21 13:24:12 · 138 阅读 · 0 评论 -
试题J:郊外植树 注意sort之后位置改变了
正确的方法只有一个,作物的方法千奇百怪题意:小明和朋友们一起去郊外植树,他们带了一些在自己实验室精心研究出的小树苗。 小明和朋友们一共有 nn 个人,他们经过精心挑选,在一块空地上每个人挑选了一个适合植树的位置,总共 nn个。他们准备把自己带的树苗都植下去。 然而,他们遇到了一个困难:有的树苗比较大,而有的位置挨太近,导致两棵树植下去后会撞在一起。 他们将树看成一个圆,圆心在他们找...原创 2020-04-30 11:48:43 · 278 阅读 · 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 · 162 阅读 · 0 评论 -
nyoj 353
读字符类型的迷宫的时候要一行一行的读原创 2019-11-16 16:36:05 · 113 阅读 · 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 · 127 阅读 · 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 · 150 阅读 · 0 评论 -
poj 3009 (dfs)
刚开始看到最短路,第一反应是bfs,但是题中说明可以破坏路障,所以需要保存状态,bfs保存状态很困难,所以改用dfs,1.第一次没注意破坏的障碍应该回溯,所以wa2.第二次用dfs的时候保存当前状态的时候用了全局变量,所以一直没调出来。#include <iostream>#include <cstdio>#include <iomanip>#inc...原创 2019-11-06 20:59:09 · 306 阅读 · 0 评论