这又是一个类似区间内的问题,可以看看是不是通过类前缀和的方式计算。还是得想想合理性,不然区间 dp 为什么不用前缀和?这里区间每多一个数就要考虑这个数的数字贡献,是独立的,所以确实可以用前缀和的方法
预测事后观察,一定是 1 到 n 的函数实现起来很简单
这种题很强的感觉是那种技巧型奥数题
1 到 abcdefg 枚举每一位 (这样枚举 1e8 秒变 8),根据传入的数字来计算。这里比如 1 在第四位上 1 ⇐ xxx1yyy ⇐ abcdefg
- xxx ∊ (000, abc-1)
为什么是 abc-1,因为 =abc 的时候有可能超出范围,要单独考虑第四位有 1 的个数就是 yyy 能取的个数,一共abc*1000
- xxx=abc
- d<1:
0
那根本没有 - d=1:
efg+1
种 - d>1:
1000
个注意 ⚠️,这里乍一想以为是也没有,但实际上分类讨论的是区间边界,d>1 表明区间内可以取到 1
- d<1:
这么分类是分类完了,但是还有些边界情况,当讨论最高位的时候,第一种情况就没了;当在最低位的时候,第一种情况退化为 abc
;当讨论 0 的时候,高位就不能去 000,那具体从 100 开始还是 001 开始呢?y 总也搞错了,等后续
M*N 划分 1*2,几个方案
能猜到,要把 mn 缩小为 (m-a)(n-b) 的情况,但是得确保缩小后仍然是长方形。记得之前做过一个三角形的填充,是通过巧劲实现了划分,