L1141(bfs思想)
一,看
1,整个方格图其实可以看做是一些不连通的图。
当然图内部必然是联通的。
2,遍历的技巧没什么。
方格图入队的技巧。。额,是这样的
int gtid(int x,int y)
{ return x*m+y-1;}
*这个函数可以把二维点对压成一维。
*解压时只需要x=id/n,y=id%n+1;
原理是》?
噢。。首先你是在bfs,得用队列。。
所以有这么一出。其实你也可以用结构体,但是它说结构体
不够优美。。
函数的全称是get_id.
3,还有骚的操作
(x-1)*m+y-1;
听说这样一个3×3的表格就是从0,1,2,3,4,5,6,7,8
这样,挺秀的。
4,它的代码结构化挺好的,看起来挺高级的
①,入队,标示区域
②,队列出元素,检查是否在地图内
③,这个判断的话,我觉得一个和标记有关,一个和区域有关
染色深入递归
二,题解
1,这个标示队列的使用方法。。queue<pair<int ,int>>q;
还是听那人的比较好,全用手写~2
2,这也太难看了把。
3,重点看的是答案从何而来。
4,bfs只是一种思想,并非必须这样。
三,写题
1,bfs只是一种枚举的思想。而非很固定的一个东西。
四,完美写一遍
1,必须每次都得不看得写一遍。
2,在于标记函数,标记是否走过
颜色函数,每几个点是否在一个联通图中,