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

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

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

优先级:

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

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

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

非憨批行为

遇事不决,手动模拟!!

差错不决,赶紧对拍!!

posted @ 2021-02-10 12:32  _Buffett  阅读(48)  评论(0编辑  收藏  举报