传送门
题意
给你一个十六进制数,求这个范围内满足所有位置上的数字出现的种类正好满足 k k k次的个数
分析
我一开始的想法是维护 f [ i ] [ j ] f[i][j] f[i][j]数组,状态压缩来记忆化搜索,后来发现数组开不下
然后知到的是,在种类相同的情况下,第 i i i位下的答案是相通的,所以我们只要维护数字出现的种类次数即可
代码
#pragma GCC optimize(3)
#include <bits/stdc++.h>
#define debug(x) cout<<#x<<":"<<x<<endl;
#define dl(x) printf("%lld\n",x);
#define di(x) printf("%d\n",x);
#define _CRT_SECURE_NO_WARNINGS
#define pb push_back
#define mp make_pair

博客内容讲述了如何使用动态规划方法解决一个关于计算十六进制数中各个数字种类出现次数的问题。作者首先尝试了状态压缩记忆化搜索,但由于数组大小限制无法实现。接着,他们发现只需维护数字种类的出现次数即可,通过递归函数`dfs`实现了这一思路,并给出了完整的C++代码实现。
最低0.47元/天 解锁文章
271

被折叠的 条评论
为什么被折叠?



