USACO - 【Odometer】中文题解

本博客详细解析了USACO题目【Odometer】,探讨如何计算在指定范围内(X..Y)满足一半以上数位相同(非前导0)的“有趣数字”数量。通过动态规划方法,枚举数字的每个数位和重复数字,建立状态转移方程,最终得到解决方案。同时指出,当数字位数为偶数且由两种数字组成时,需要避免重复计数的情况。
摘要由CSDN通过智能技术生成

PS:题解来源于USACO官方,实际上是想练练翻译和表达能力,请不要在意细节,看不懂就继续看USACO的英文版题解吧……

题目:【传送门 http://www.usaco.org/index.php?page=viewproblem2&cpid=435

官方题解:【传送门 http://www.usaco.org/current/data/sol_odometer_silver.html

  题目大意:给出一个范围 X..Y(X<=Y<=10^18),求出该范围中“有趣数字”的个数。对“有趣数字”的定义是:一个数字去掉前导0后至少一半数位上的数字相同。例如3223和1100是,而97791和123不是。

  都明白 X..Y 中有趣的数字个数实际上等于 1..Y 中有趣数字的个数减去 1..X-1 中的数字个数吧?我们只要考虑如何求 1..a 中的个数 f(a) 即可。

  要求 f(a) ,我们可以通过自己构造数字的方法统计个数。因为要求数字中有一半以上的数位上的数字相同,我们只需枚举这个重复的数字是 0..9 的哪一个就是了,设为targ

  定义 F[i][und][k][is0]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值