2024.6.26
**每日一题**
526.优美的排列,该题考察的是状压dp的知识,用一个n位的二进制数表示排列中的数被选取的情况,若为1,则表示该位被选取,若为0,则表示该位没有被选取,用一个数组来存储当前情况下的排列数,当前的状态应该由以下所有情况转移而来:枚举当前二进制数中1的位置,若该位置往后一位满足题目的条件,那么就加上这个状态的排列数,遍历所有,最后输出f[(1<<n)-1];
__builtin_popcount(mask)
该函数的作用是返回该二进制数中1的个数.
2741.特别的排列,这题跟上题有些相似,不过这些数字不是依次增大的,利用递推的方法,不断寻找前一个状态的值,并且累加。