HDU-6156题解(数位DP)

Posted 565261641-fzh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDU-6156题解(数位DP)相关的知识,希望对你有一定的参考价值。

一、题目

  技术分享图片

二、思路

  1、这是很明显的数位DP;

  2、和以往数位DP不同的是,这里带了个进制进来,而以往做是纯十进制下或者纯二进制下做操作。但是,不管多少进制,原理都是一样的;

  3、这里有个小坑,题目中说大于10的数用A、B、C、……、Z表示,那都是骗人的。使用数位DP分解给定上界的每一位数后,得到没一位的就是在给定进制下的该位的权值,压根不需要在数字、字母之间转来转去,纯数字娱乐;

  4、比较直观的想法是:

    (1)枚举给定范围内的每一个进制;

    (2)计算在b进制下的回文数个数,然后即可得出在b进制下的和;

    (3)累加上面的所有和,得出最终答案。

  5、在4(2)中,利用数位DP计算在b进制下的回文数个数,需要记忆化。如何记忆化,怎么表示状态,这个是本题的关键所在。首先,当前搜索状态在数位中的位置pos,进制b,这个是确定状态的两个依据,不难想到。接下来,先把dp数组的设计放下来,看看dfs函数。既然与回文数有关,那自然,回文数的起始位置应该知道,因为前导0是不参与回文计算的。还有一点非常关键:因为要判断一个数是否回文,就必须从端点到中间扫描整个数字序列,而如果要这么做,那我们的记忆化就玩完了,每个数都判断一下,就变成暴力枚举了。所以,要让判断在搜索过程中完成。

 

以上是关于HDU-6156题解(数位DP)的主要内容,如果未能解决你的问题,请参考以下文章

HDU 6156 回文 数位DP(2017CCPC)

2017中国大学生程序设计竞赛 - 网络选拔赛 HDU 6156 数位DP

HDU 6156

AHOI2009同类分布 题解(数位DP)

题解Luogu P4121 [CQOI2016]手机号码 数位DP

HDU2089 不要62 题解 数位DP