思维——cf1178E
Posted zsben991126
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了思维——cf1178E相关的知识,希望对你有一定的参考价值。
一开始少看了条件:相邻两个字符不相等,字符集只有abc
那么我们取开头结尾各两个字符,一定有两个是相等的
#include<bits/stdc++.h> using namespace std; const int maxn = 1000010; char s[maxn]; bool v[maxn]; int main() scanf("%s", s + 1); int n = strlen(s + 1); int l, r, ans = 0; for (l = 1, r = n - 1; l + 2 <= r; l += 2, r -= 2) for (int j = 0; j < 2; j++) for (int k = 0; k < 2; k++) if(s[l + j] == s[r + k]) v[l + j] = v[r + k] = 1; ans += 2; goto ed; ed: continue; if(ans < n / 2) v[l] = 1; for (int i = 1; i <= n; i++) if(v[i] == 1) printf("%c", s[i]); printf("\n");
以上是关于思维——cf1178E的主要内容,如果未能解决你的问题,请参考以下文章