构造。
$bbaabbaabbaa......$输出前$n$个即可,这样不需要用到$c$,而且任意相邻三个都不会是回文。
#include <cstdio> #include <cmath> #include <set> #include <cstring> #include <algorithm> using namespace std; int n; int a[500010]; void init() { int pre = 0; int sum=0; for(int i=1;i<=500000;i++) { a[i] = pre; sum++; if(sum%2==0) pre=pre^1; } } int main() { scanf("%d",&n); init(); for(int i=1;i<=n;i++) { if(a[i]==0) printf("%c",'b'); else printf("%c",'a'); } printf(" "); return 0; }