我在最后统计dp答案时一开始写的是
for(int k=j;k;k-=(k&(-k)) dp[i+1][j]=std::max(dp[i+1][j],dp[i][j^k]+f[i][k]);
之后换成看起来一样都是去掉二进制下最后一个一的操作
for(int k=j;k;k=k-1&j)) dp[i+1][j]=std::max(dp[i+1][j],dp[i][j^k]+f[i][k]);
结果上面的 WAWAWA 了,下面的却 ACACAC 了
问这两种写法有啥差别吗?