摘要: 一,看题 1,题不难,但是这个马怎么走,着实搞懵我了。 2,转过去就发现,其实变一下dx,dy就ok。 3,除了输出外似乎也没什么坑。 4,其实也是有的,这个步数也是。。。 5,作为一道提高-的搜索题,还是有点东西的。 二,写题 1,先推走的坐标。 2,不谈你全是-1的情况下, 你这个设计的根据出队 阅读全文
posted @ 2019-12-08 22:42 北月真好 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 1,按位异或(^) a^b, 如果a,b值相同返回0 如果a,b值不同则返回1. 2, (l+r)>>1,的意思是除以2. 你看这个是二分是不是很明显了? 同理(l+r)<<1,的意思是乘2. 然后还有一个问题就是 如果你2>>1+1,这样会出错的,因为位运算的优先级和普通运算的优先级不一样的。 会 阅读全文
posted @ 2019-12-08 20:06 北月真好 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 一,手写队列。 1 struct queue 2 { 3 int maxn=10000000; 4 int first=0,rear=0,a[maxn]; 5 6 void push(int x) 7 { 8 a[++rear]=x; 9 } 10 void pop() 11 { 12 first+ 阅读全文
posted @ 2019-12-08 19:39 北月真好 阅读(844) 评论(0) 推荐(0) 编辑
摘要: 一,看 1,整个方格图其实可以看做是一些不连通的图。 当然图内部必然是联通的。 2,遍历的技巧没什么。 方格图入队的技巧。。额,是这样的 int gtid(int x,int y) { return x*m+y-1;} *这个函数可以把二维点对压成一维。 *解压时只需要x=id/n,y=id%n+1 阅读全文
posted @ 2019-12-08 14:13 北月真好 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 1,每次搜索要不要标记函数。 阅读全文
posted @ 2019-12-08 14:11 北月真好 阅读(86) 评论(0) 推荐(0) 编辑
摘要: 1,为什么bfs要用到队列。 2,对于你可以遍历到的所有状态,先把他们加到一个队列中,然后再去遍历他们。 3,简单说就是先mark,然后在遍历。 4,代码框架 void bfs() { push(..)//把起始状态入队列 while(!empty()){//当队列不为空时候 x=pop(); fo 阅读全文
posted @ 2019-12-08 14:05 北月真好 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 1,开了数组后赋值。 2,搞一个死循环。 3,打开任务管理器 阅读全文
posted @ 2019-12-08 14:01 北月真好 阅读(155) 评论(0) 推荐(0) 编辑