从[互不侵犯]一题析代码的锅

从[互不侵犯]一题析代码的锅

这个题,真的是,作为状压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;

优先级:

==,!= > & > ^ > | > && > || 

括号永远是最强的,然后就是它们:

! +(正) -(负) ~ ++ --

非憨批行为

遇事不决,手动模拟!!

差错不决,赶紧对拍!!

原文地址:https://www.cnblogs.com/ZhengkunJia/p/14395490.html