状态压缩是什么呢?
如果你还不知道,那么请看下面的例子。
路旁有一排100个路灯,他们其中有亮的,也有灭的,请问你该如何记录他们的状态呢
有人会说,拿数组记录不就行了吗?
但是如果不只有100个路灯呢?有100000000个路灯该怎么记录呢?
这时,用数组就会超内存,怎么办呢?
其实,用一个二进制数就可以表示了。表示方法如下:
第i位为1表示第i个路灯是亮的,0表示是灭的,这样就能轻松记录了。
但得到了这个二进制数后,我们怎么快速知道每个灯的状态呢?
出来吧,位运算!
下面列举了一些常见的二进制位的变换操作。
所以大家可以发现,状态压缩是一种在计算机里很重要的思想。
不只是dp,很多搜索,暴力用上它也会简单很多。