[JRKSJ R8] 三七二十一
题目描述
给你一个由 1 ∼ 9 1\sim 9 1∼9 的数字组成的数字串 s s s。定义一个数字串 s s s 表示的数为将其看作十进制数得到的数。形式化地说,长为 n n n 的数字串 s s s 表示的数是 ∑ i = 1 n 1 0 n − i s i \sum_{i=1}^n 10^{n-i}s_i ∑i=1n10n−isi。
你可以对这个数字串执行若干次操作,每次操作中你可以选定一个位置 1 ≤ p ≤ n 1\le p\le n 1≤p≤n 并将 s p s_p sp 修改为任意 1 ∼ 9 1\sim 9 1∼9 中的数字。你需要使该数字串不存在任何一个非空子串满足这个子串表示的数字是 2 k ( k ∈ N ) 2^k(k\in \N) 2k(k∈N) 即 2 2 2 的任意非负整数次幂,请你求出最少的操作次数。
输入格式
一行一个数字串 s s s。
输出格式
一行一个整数表示答案。
样例 #1
样例输入 #1
2468
样例输出 #1
3
样例 #2
样例输入 #2
164
样例输出 #2
2
样例 #3
样例输入 #3
65535
样例输出 #3
0
提示
样例解释
对于样例 1 1 1,满足表示的数是 2 2 2 的非负整数次幂的 s s s 的非空子串有 2 , 4 , 8 2,4,8 2,4,8,将 s s s 修改为 5963 5963 5963 是最优解之一。
对于样例 2 2 2,满足表示的数是 2 2 2 的非负整数次幂的 s s s 的非空子串有 1 , 4 , 16 , 64 1,4,16,64 1,4,16,64,将 s s s 修改为 666 666 666 是最优解之一。
数据规模与约定
本题采用捆绑测试。
令 n = ∣ s ∣ n=|s| n=∣s∣。
Subtask \text{Subtask} Subtask | $n\le $ | 分值 |
---|---|---|
1 1 1 | 4 4 4 | 10 10 10 |
2 2 2 | 8 8 8 | 10 10 10 |
3 3 3 | 17 17 17 | 20 20 20 |
4 4 4 | 1 0 3 10^3 103 | 20 20 20 |
5 5 5 | 1 0 6 10^6 106 | 40 40 40 |
对于 100 % 100\% 100% 的数据, 1 ≤ n ≤ 1 0 6 1\le n\le 10^6 1≤n≤106, s s s 由 1 ∼ 9 1\sim 9 1∼9 的数字组成。
Scratch实现
后续
接下来我会不断用scratch来实现信奥比赛中的算法题、Scratch考级编程题实现、白名单赛事考题实现,感兴趣的请关注,我后续将继续分享相关内容