枚举进制 B=2,3,…,36,把 n 按 B 进制逐位取余。每一位余数 z 写成十进制字符串后,统计其中字符 1 的个数并累加;再在所有进制上取最大值。
由于 n≤3×105,每个进制下的位数为 O(logn),直接模拟即可。
编码系统可以把一个十进制正整数写成 2 到 36 进制。对于大于 9 的数码,沿用常见写法:a 表示 10,b 表示 11,依此类推,直到 z 表示 35。
给定十进制正整数 n。把它分别转换成 2,3,…,36 进制后,统计每种表示里字符 1 出现的次数,求这些次数的最大值。
例如 n=4 的二进制是 (100)2,只含 1 个字符 1;三进制是 (11)3,含 2 个字符 1。
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.