[SCOI2007]排列--状态压缩DP+余数的性质
Luogu 4163 题目分析: 这个题要求的排列是不能重复的,所有我们先假定 s s s 的每位数不相等,最后统计答案数去掉重复的就 O K OK O K 考虑枚举排列的过程: 有一个 s 串 : a b c s串:abc s 串 : a b c ,我们已经排列到了 b a , 此 时 的 余 数 为 j ba,此时的余数为j b a , 此 时 的 余 数 为 j 当我们把 c c c 加进来时,变成了 b a c bac b a c ,相当于就是 b a ∗ 10 + c ba*10+c b a ∗ 1 0 + c 而余数又会怎么变化呢? j 变 成 了 ( j ∗ 10 + c ) j变成了(j*10+c) j 变 成 了 ( j ∗ 1 0 + c ) % d d d 我们定义 f [ i ] [ j ] 表 示 状 态 为 i ( i 的 每 一 位 表 示 s 串 中 的 数 字 选 或 不 选 ) 时 f[i][j]表示状态为i(i的每一位表示s串中的数字选或不选)时 f [ i ] [ j ] 表 示 状 态 为 i ( i 的 每 一 位 表 示 s 串 中 的 数 字 选 或 不 选 ) 时 , 余 数 为 j 的 方 案 数 余数为j的方案数 余 数 为 j 的 方 案 数 边界 f [ i ] [ j ] = 0 , f [ 0 ] [ 0 ] = 1 f