位运算
Winterfell30
这个作者很懒,什么都没留下…
展开
-
Codeforces 635C XOR Equation (脑洞)
题意给出一个s和一个x(s <= 1e12, x <= 1e12),求有多少对数相加等于s异或等于x。思路对于任意a和b,我们有s = a ^ b + (a & b) * 2,然后能得到a & b=(s - x) / 2。 那么显然当s < x或者s - x是最低位为1的时候无解 。 得到a & b之后还有一个重要的判定就是a & b和x相与不为0的时候也是不可能存在的。 然后就按照异或值按位原创 2016-05-07 01:00:43 · 561 阅读 · 0 评论 -
HDOJ 5745 La Vie en rose (bitset优化DP)
题意字符串s和p,p可以交换相邻两个字符的位置但是只能交换一次。求每个s[i]到s[i+len(p)-1]是否能由p变化得到。思路dp[i][j][0/1/2]分别表示在s的i位置和p的j位置时p[j]与p[j-1]交换、不交换、与p[j+1]交换时是否能变换得到。 因为dp是一个bool数组所以我们可以用bitset表示第一维也就是母串的匹配情况,第二维滚动一下。对于s[i]和p[j]的匹配情况原创 2016-10-23 21:53:29 · 445 阅读 · 0 评论