状压DP学习笔记

二进制操作

  • 将第k位设为1
    x = x | (1 << k)
  • 将第k位设为0
    x = x & -(1 << k)
  • 查询第k位
    x & (1 << k)
    (x >> k) & 1
    如果等于0,那么第k位是0,否则是1
  • 查询是否有相邻两位均为1
    x & (1 << k)
    (x >> k) & 1

例题1 P1896 [SCOI2005]互不侵犯

思路:板子用了一点二进制操作

例题2 P2704 [NOI2001] 炮兵阵地

思路:

posted @ 2023-10-03 12:06  LouYW07  阅读(13)  评论(0)    收藏  举报