题解:P10732 [NOISG2019 Prelim] Palindromic FizzBuzz
前置知识:
思路:
为什么要改为 c++14 呢?因为 to_string() 这个函数到 c++14 才有,而 DEV 默认是 c++11。
我们枚举这个区间,将其中的每个数用 to_string() 变为字符串,这样就可以枚举它的每一位,方便判断。
若字符串的长度为 $s$,则枚举位数的循环只需循环 $\left \lfloor \frac{s}{2} \right \rfloor$ 次即可。
若此字符串为 $w$,则 $wi$ 对应的为 $w{s-i-1}$。
按照这个将相等的组数记下来,如果它是回文数的话,那么相等的组数应为 $\left \lfloor \frac{s}{2} \right \rfloor$。
判断一下即可。
注意:
数据范围为 $1 \le S \le E \le 10^{18},E-S+1\le 10^5$,需要开 long long。
AC 代码:
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 伟大的IOI的博客!
