acm-搜索-dfs
u013700636
这个作者很懒,什么都没留下…
展开
-
poj1426
一开始用bfs做,但发现用dfs做更快,短小精悍!#include #define ll long long int k; bool dfs(int cnt,ll sum) { if(cnt>18)return false; if(sum%k==0){ printf("%lld\n",sum); return true; } if(d原创 2014-03-03 20:46:01 · 715 阅读 · 0 评论 -
hdu1010—我的惯性思维
把墙的标记‘X’惯性的写成了‘#’,所以一直调不出来;之后看到是‘X’后,我发现我就是一逗比! 这题剪枝有点多: 一:最少要走的步数>时间; 二:奇偶剪枝——只可能为偶数; 三:步数 #include #include #include using namespace std; char map[8][8]; int cnt,T,flag,n,m,dx,dy,sx,sy; int dir原创 2014-03-05 00:27:30 · 734 阅读 · 0 评论 -
poj2488
‘=’写成‘==’,被坑了!!!不解释!#include #include #include int dir[8][2]={{-2,-1},{-2,1},{-1,-2},{-1,2},{1,-2},{1,2},{2,-1},{2,1}}; int map[27][27]; int sta[100][2]; int n,m,flag,tot; void print() { for(int原创 2014-03-04 14:37:40 · 644 阅读 · 0 评论 -
poj3083-我才知道我左右不分,行列不分!
这题花了我一晚上的时间!!不是说题有多难,而是我犯了两个小学生都不会犯的错误,一个又一个的bug让我是想跳楼的心都有了!!没办法,就在不断的bug和debug中, 我TM终于AC了,不容易啊!!! 这题有几个地方要注意: 一:方向要顺时针(或逆时针也可以但ldfs和rdfs要做相应的改变);(0:西 ;1:北 ; 2:东;3:南); 二:沿左墙走,原方向若为d,要从(d-1,d,d+1原创 2014-03-05 23:45:15 · 1134 阅读 · 0 评论