【hdu3709】平衡数

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

时间限制 : 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的套路讨论即可。注意边界情况,若

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值