[CF855E]Salazar Slytherin‘s Locket

Salazar Slytherin's Locket

题解

很水的一道数位dp。

在b进制下保证每个数的出现次数为偶,由于需要记录每个数出现次数的奇偶,而b\leq 10,很容易想到用状压来表示。

至于答案还是很常规的差分套路,用记忆化搜索来进行数位dp来求出小于等于某个数的满足条件数的个数。

dp_{i,j,k}i进制下,在第j位时状态为k时满足条件数的个数。

转移时还是用记忆化搜索进行,转移方程也很好想。

源码

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<int,int> pii;
const LL mo=1e9+7;
LL q,b,l[75],r[75],L
posted @   StaroForgin  阅读(27)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
历史上的今天:
2021-06-04 [ABC202F]Integer Convex Hull
点击右上角即可分享
微信分享提示