这是本文档旧的修订版!
暂无。
暂无。
来源:codeforces 778E
tag:枚举/dp
概述:
给定一个n位的数字,这个数字中可能有未确定的位数,再给出m个整数,我们按照如下方式计算答案。
对于数字0~9,我们给出其权值,得到答案就是m个整数都加上给定的数字后,各个位数的权值之和。
现在我们希望答案最大,要求你输出这个答案。
答案:
我们考虑如果没有进位的话这其实是一道贪心,但是如果加上进位,我们可以轻易的想到用dp来解决这个问题,我们设置状态dp[i][j]代表前i位选择完,第i位上没进位的状态为j的最大答案。
但是这里出现了问题,如果j用一个二进制表示的话,会非常大,我们思考如何优化这个状态。
考虑如果所有给出的m个整数,按照第i位数字有序,那么j这个状态就可以转换成前j个没进位,这样j的状态成功从2^m变成m个。
comments:从二进制枚举到枚举的转换,巧妙的dp思想。