2018年NOIP提高组初赛C++阅读程序题:
#include<iostream> using namespace std; string s; long longmagic(int l, int r) { long long ans = 0; for (int i = l; i <= r; ++i) { ans = ans * 4 + s[i] - 'a' + 1; } return ans; } int main() { cin >> s; int len = s.length(); int ans = 0; for (int l1 = 0; l1 < len; ++l1) { for (int r1 = l1; r1 < len; ++r1) { bool bo = true; for (int l2 = 0; l2 < len; ++l2) { for (int r2 = l2; r2 < len; ++r2) { if (magic(l1, r1) == magic(l2, r2)&& (l1 != l2 || r1 != r2)) { bo = false; } } } if (bo) { ans += 1; } } } cout << ans << endl; return 0; }
输入:abacaba
输出:___