洛谷P1219 - 八皇后
我的思路是,按行顺序来放到列上,所以行不会重复,同时放到列上时,判断该列有没有占用,所以列不会重复,那么这个题,关键点就是处理对角线,可以发现,选择了一个点(x,y),那么他的两条对角线上的点都不能选了,发现这两条对角线上的点(x1,y1)分别满足x1+y1=x+y 和 x1-y1=x-y
那么在判断交叉线是用两个数组,一个记录x+y值占用过没,另一个记录x-y+n占用过没(因为可能有负数)
ps:本来我是用map来记录x+y值和x-y值的,不行!因为会有二者恰好相同,并且会超时(QwQ)
#include
#include
#include
#include
#include
#include
#include
洛谷P1101 - 单词方阵
我傻了,直接上了dfs,然后错错错,其实这个题明显要判断方向啊,朝着一个方向搜索下去!
而且本来是想暴力写的,但是dfs更简洁,把每一步存下来,搜到结果的时候再处理!
#include
#include
#include
#include
#include
#include
#include
洛谷P1162 - 填涂颜色
参考题解区第一的大佬思路
这个思路很巧妙,就是从不在圈内的0开始搜索,遇到1就停止了,那么1和1内部都搜不到,标记为2
但是我们怎么找不在圈内的0呢?
图存到a[1-n][1-n]里,我们把n*n的图向外扩一圈,从(0,0)开始搜就行了,总能找到“突破口”,除非图是被1全包围的
#include
#include
#include
#include
#include
#include
#include