第一百一十四章 两分钟讲解(2/2)
码,只能放弃。得0分,好丢人呀!
孟梦的小脑袋不断往自己的手臂弯里钻着,一副非常苦恼的模样。
孟响一边写代码,没有丝毫停顿,一边讲解道:“这个算法的核心数组来代替以前由或者bool数组来存储当前格子被占用的情况。”
“程序中主要需要三个数组,每个对应的是n皇后格子的一列和正斜列和反斜列。”孟响一边说,一边写了一个函数:
vgrld,lrd)......
“其中row表示一列上是否有皇后,如果有则是1,如果没有就是0,ld和rd分别表示正斜列和反斜列是否有皇后,接着我们要对这三个参数进行或运算,求得所有可以放置皇后的列,对应位是0。”
大伙瞪大了眼睛,看着孟响手中飞速舞动的黑色涂鸦笔,一行行代码整齐的展现在白色小板上。
“然后,我们要对结果取反,取反之后与上全1的数,来求得当前所有可以放置皇后的位置,对应列数改为1,也就是求取当前哪些列可以放皇后。”说到这,孟响连续写下了数个表达式。
大部分学生只能懵逼的看着孟响一边讲一边写代码,只有小部分人能够勉强跟上孟响的思路。毕竟,即便是自己去理解这种位运算,没有十多分钟也很难理解,更别说这短短的两分钟之内了。
而张栋梁站在一旁看着孟响,在他看来,目前孟响的代码还没有什么错误,讲解对他来说也非常详细。
“s的意思就是取最右边的1再组成二进制数。”
“然后......将s最右边为1的清零。”
“......”
“row所有位都为1时,即找到了一个成功的布局,然后我们记录下来,回溯。”
“然后我们考虑棋盘的对称性......”
孟响的语速越来越快,手中的书写速度也越来越快,随着时间逐渐走向终点,在众人以及妹妹惊讶的眼神中,他赶在时间到达前,写完和讲解完了位运算的方法。
书友们,我是超级叶子,推荐一款免费小说app,支持小说下载、听书、零广告、多种阅读模式。请您关注微信公众号:ddu(长按三秒复制)书友们快关注起来吧!
本章阅读结束,请阅读下一章