7.22学习总结

昨天学习了基本算法的位运算,通过位运算又有很多延伸,像是快速幂,快速乘,再者后来的状态压缩,和位运算优化,昨天学习使用位运算去解决八皇后问题,朴素算法的解决N=13时是0.5秒,而位运算优化之后的时间是0.08秒,算法的思路相似,但是他的表示方法很特殊,符合条件的状态,也可以通过位运算得到,昨天也是看了一天位运算,虽然很耗时,但是看得太快,觉得自己看会了,但是做题不会等于白学,从刚开始看这本书沾沾自喜,觉得不是很难,但是如果把课本上的例题,都敲一遍,在加上一部分的扩展,这看起来是一个不小的工程。昨天做题的时候,也发现自己挺懒的,开始想的用搜索做的题目,到后来因为懒得写,想换种简单的方法,但是没发现自己的思路有问题,但是就是不知道哪个细节没处理好,没做出来。
状态压缩第N中状态改变
n^(1<<N) 这里1左移N位,即从右数第N位为1,做异或后除了1对应外的所有为是1的最后都变成1,是0最后还是变为0,对应的1会变为零,0会变为1。
……1000010
……0001000
^ ans:
……1001010
这样就可以通过一个int表示很多状态,而每个不同的状态对应的int值唯一,所以这里就可以用一个int表示多种状态。还有需要注意的就是,到现在也不知道位运算的优先级,记这个也没用,直接加括号。

posted @ 2019-07-23 09:47  风骨散人  阅读(85)  评论(0编辑  收藏  举报