摘要: 主要思想是,对于非负整数n,输出n最低位的1所在位,并不断把n赋值成n-(n&-n),直至n=0。 为了提高效率,我们使用Hash代替取log,并且利用一个数学技巧:对于任意在[0,35]中的k,2^k%37互不相等,且恰好取遍整数1~36。 阅读全文
posted @ 2019-02-14 21:11 Mr^Kevin 阅读(330) 评论(0) 推荐(1) 编辑
摘要: 题目链接:https://www.luogu.org/problemnew/show/P1171 比较经典的状压DP吧,就是最后一个点不开O2卡不过去。。。 主要是对位运算熟,注意f[1][0]=0,其他状态为正无穷,别的看代码吧。 1 #include <cstdio> 2 #include <c 阅读全文
posted @ 2019-02-14 20:36 Mr^Kevin 阅读(522) 评论(0) 推荐(0) 编辑
摘要: 取出整数n在二进制表示下的第k位:(n>>k)&1 取出整数n在二进制表示下的第0~k-1位(后k位):n&((1<<k)-1) 把整数n在二进制表示下的第k位取反:n^(1<<k) 对整数n在二进制表示下的第k位赋值1:n|(1<<k) 对整数n在二进制表示下的第k位赋值0:n&(~(1<<k)) 阅读全文
posted @ 2019-02-14 19:44 Mr^Kevin 阅读(322) 评论(0) 推荐(1) 编辑