dfs
文章平均质量分 64
G_rass
这个作者很懒,什么都没留下…
展开
-
poj 2676 Sudoku(数独)
题意:求解数独问题 思路:dfs深搜,注意用三个数组保存每行每列每个小九宫格是否存在某数字, 通过这个题目初步了解了dfs的大概用法,对其中的栈的返回有了新的理解(每一层栈都有返回值);, #include #include #include using namespace std; char aa[11][11]; int a[11][11]; int x[11][11],y[11][11原创 2015-07-22 20:39:59 · 407 阅读 · 0 评论 -
hdu 1515,zoj 1004 Anagrams by Stack
题目链接 题意:有两个单词,能否通过对第一个单词进行出栈和入栈操作,输出第二个单词,如果能则输出全部相应的出栈入栈操作,出栈为o,入栈为i, 思路:dfs深搜,注意一些条件的判断, 看了别人的思路后自己写了一遍,输出时却出现的只输出一组解的情况,百思不得其解,一遍又一遍比对及实验后(恨不得直接把人家的代码复制过来),才发现是在对dfs深搜后的恢复上出现了问题,本应先y--,然后入栈b[y],原创 2015-07-23 23:09:53 · 550 阅读 · 0 评论 -
zoj 1204 Additive equations
题目链接 题意:给定一个集合,若集合中任意n个元素相加的和仍属于集合,则输出这个等式 思路:由于按等式的长度进行输出,所以按照相应的长度选择dfs搜索的深度,找出合适的解 代码:这里的1和2代表不同的选择(并没有什么区别),只是需要十分注意这些边界问题, #include #include #include #include using namespace std; int n;原创 2015-07-23 22:22:38 · 779 阅读 · 0 评论 -
zoj 1008 Gnome Tetravex
题目链接 题意 有一些卡片上下左右均有数字,要求将这些卡片拼成正方形,并且相接部分数字相同: 思路:dfs深搜,但要注意如果直接暴力的话,深搜是一个全排列问题,计算量最大是为25!,这个数字是非常大的,但如果对卡片进行分类,即上下左右均相等的卡片分成一类,这样全排列的计算量将大大减小, 这里我测试了两种思路稍有不同的代码,如下: 经测试第二种稍微快一点,应该是是因为跳出的较快, 总的来说原创 2015-07-23 22:49:48 · 399 阅读 · 0 评论 -
csu 1660 K-Cycle
题目链接 ‘题意:给出一个无向图,问是否存在闭环其长度为k; 思路:对每个点dfs,开一个一个数组记录搜索到的点的深度,搜索到以搜索过的点时检查与当前的深度差是否为k 本来写了一堆返回及恢复的东西,结果并没有什么卵用,唉,好难理解啊 #include #include #include using namespace std; int n,m,k,flag; int a[55][55];原创 2015-07-23 23:20:48 · 516 阅读 · 0 评论