本文主要是介绍F - Problem where +s Separate Digits,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
算第三遍了。。都没有想透 。。
而且这题的解法非常多样。。有正序 逆序 递推的方式也非常多。
下面是找到的一个感觉相对比较简洁的。(核心代码)
有兴趣再看吧。。先pass了。
//上面都是mod的模版部分 省略掉 下面才是核心代码
Z base[N], p[N];
void solve() {string s;cin >> s;n = s.size();base[0] = 1;p[0] = 1;for (int i = 0; i < n - 1; ++i ) {p[i + 1] = p[i] * (Z)2;base[i + 1] = base[i] * (Z)10 + p[i];}Z ans;for (int i = 0; i < n; ++i) {ans += base[n - i - 1] * p[i] * (Z)(s[i] - '0');}cout << ans;
};// 还是要找题解的。。思路感觉还ok
//https://note.com/syamashi/n/n13bfadd2cd54
这篇关于F - Problem where +s Separate Digits的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!