1 到 10^16(一到一亿亿)之间所有的降序数的个数,要求 1 秒出结果,不能穷举。语言不限。
降序数:高位数大于或等于低位数的数字。
正例:951, 62,321,8876,9
反例:123, 895 。
实在是不会啊。一点思路也没有,可悲的是百度我都没查到。
1
lance6716 2020-07-14 19:41:13 +08:00 via Android
dp ?状态是(首位数字,长度)
|
2
geemaple 2020-07-15 09:37:31 +08:00 via iPhone
数学题?无奈数学太渣,1 位数 0-9 都不是答案,2 位 9 开头有 0 种,8 开头 1 种... 1 开头 9 种 ... ,3 位数不会推到,哈哈,一直推到 16 位数
|
3
geemaple 2020-07-15 09:46:34 +08:00 via iPhone
如果求反了,用总个数-答案🤔
|
4
lllue 2020-07-15 10:33:51 +08:00
```
ans=0; dp[10]//十位数组 for(i from 0 to 9) dp[i]=1;//一位数 for(i from 1 to 15) //二位数及以上 for(j from 1 to 9) dp[j]=dp[j]+dp[j-1]; for(i from 0 to 9) ans+=dp[i]; ``` |