时间限制 : 1000 MS 空间限制 : 65536 KB
问题描述
平衡数:对于整数n,以数n中的某一位为支点,第i位上的数的力矩=X[i]*(Pos[i]-Point)其中X[i]为数字n第i位上的数字,Pos[i]为第i位数字的位置编号i,Point为支点的位置编号。如果在数n里能找到一个支点使得所有数的力矩之和为0那么它就是平衡数。
比如4139,以3为支点,左边 = 4 * (4 - 2) + 1 * (3 - 2) = 9,右边 = 9 * (1 - 2) =-9,左边加右边为0,所以4139是平衡数。 现在给出一个区间[l,r],问区间内平衡数有多少个?
输入格式
一行两个整数,L和R。
输出格式
一个整数,表示区间[L,R]中平衡数的个数。
样例输入 1
0 9
样例输出 1
10
样例输入 2
7604 24324
样例输出 2
897
提示
20%的数据:0 ≤L ≤ R ≤ 10^3
100%的数据:0 ≤L ≤ R ≤ 10^18
题解
比较水的一道数位DP,枚举支点,每次都按数位DP的套路讨论即可。注意边界情况,若

这是一篇关于计算平衡数的博客。平衡数是指在整数中找到一个支点,使得所有数字的力矩之和为0。文章介绍了如何在给定区间[L, R]内找出所有平衡数的方法,并提供了样例输入和输出,以及解决问题的代码思路,强调了在处理边界条件时的注意事项,特别是当L=0时需要排除额外的0的计数。"
100548136,7382620,寻找字符串数组的最长公共前缀,"['字符串处理', 'C++编程', '算法挑战']
最低0.47元/天 解锁文章
426

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



