从[互不侵犯]一题析代码的锅
从[互不侵犯]一题析代码的锅
这个题,真的是,作为状压DP的敲门题,我从2020年1月份第一次见它,
到今年2月份重构过3、4遍。然后终于过了。
憨批行为之一
我有一次在寻找合法状态的时候,逐位枚举?甚至还枚举\(1\)的个数啊、搜索啊......
正确的做法是
for(int s = (1 << n) - 1; s >= 0; --s);
憨批行为之二
注意运算符的优先级!!!
\(==\)和\(!=\)的优先级是要高于\(&\)的,所以在写这几句的时候要加括号:
if((s & (s << 1)) != 0) return 0;
if((s0 & s) != 0) return 0;
if(((s << 1) & s0) != 0) return 0;
优先级:
==,!= > & > ^ > | > && > ||
括号永远是最强的,然后就是它们:
! +(正) -(负) ~ ++ --
非憨批行为
遇事不决,手动模拟!!
差错不决,赶紧对拍!!