题解 P2549 【计算器写作文】

· · 题解

简述:将一堆数字按照某些顺序排列,在限定答案的长度下数字最大。

首先先将这堆数字按按字典序排序。

然后dp;

贪心是错误的,因为你可能没法把位数填满。

对于前i个数字,长度为j的最大值,

f[i,j+s[i].length]=max(f[i-1,j+s[i].length],f[i-1,j]+s[i]);

f和s都是字符串类型,max是比较字典序大小。

请使用循环数组。

然而只能80分。

why? 如果全是0开头的数字呢?

贪心吧。只要能位数不够,就加进去。没关系的。反正有个小数点。