会员专享
请先
登录,登录后可使用今日免费解锁;
开通会员后可解锁完整内容。
解题思路
需要统计流水号 t 的所有非空有效子序列积分。有效条件为:无前导零(单独的 0 除外),且数字和能被 5 整除。
∣t∣ 可达 105,不能枚举子序列。从左到右扫描,用长度为 5 的数组维护:
- dp[r]:首位不为 0 的子序列中,数字和模 5 等于 r 的个数;
- dpP[r]:其中首位属于 {2,3,5,7} 的个数。
题目内容
给定一个仅由数字 0 到 9 构成的流水号字符串 t。系统会考察 t 的所有非空子序列并累计积分。
一个子序列有效,当且仅当同时满足:
- 它所表示的整数不含前导零(例如 01、007 非法),但单独一个 0 合法;
- 子序列中各位数字之和能被 5 整除。
每个有效子序列按下列规则计分:
- 若首位属于 {2,3,5,7} 且末位为偶数,得 4 分;
- 若首位属于 {2,3,5,7}(但末位不是偶数),得 3 分;