zoukankan      html  css  js  c++  java
  • DP技巧

    持续更新ing

    一、区间DP

    1.for循环一般第一维枚举区间长度,第二维枚举左端点,第三维枚举中继点。

    2.遇到环,将环断链复制两遍。


    二、状压DP

    1.用单个数表示一个集合,用这个数二进制下的1表示该元素处于集合中,0表示不再。

    2.这个数二进制下1的个数就是集合中元素的个数。

    3.使用lowbit运算遍历每一个元素,其中lowbit返回的值是2的该元素次幂的值,可以开一个数组存储2的各个幂的值所对应的对数,这个对数即为该元素在集合中的位置。

    4.枚举集合中的所有子集:

    for(int y=x;y;y=(y-1)&x)//y即为x的子集

    5.若集合S的一个子集为A,则S-A可以表示为S^A或S-A。

    对不起啊,因为我是一个活在二次元的人,生为野犬,喻世,勿争了吧。
  • 相关阅读:
    AOJ 718.计算GPA
    AOJ 11.Rails
    AOJ 592.神奇的叶子
    AOJ 10.目标柏林
    洛谷P1030求先序排列
    vijos1514天才的记忆
    洛谷2016战略游戏
    LOJ10155数字转换
    洛谷2014选课
    洛谷2015二叉苹果树
  • 原文地址:https://www.cnblogs.com/YLCHANGE/p/13509982.html
Copyright © 2011-2022 走看看