题目
思路
构造题。
很容易想到 A...AR...R 的形式。
有 个
A, 个
R 就有 个
AR。
但是题目给出的 不一定可以表示成
的形式,但一定可以表示成
的形式因此想到
AR...RA....AR....R(以一个 A 开头接 个
R 后面再接 个
A 和 个 'R')的形式。
这样子序列的长度为 ,且
。
其中 ,从
枚举
,
。复杂度应该是
。
Code
#include <cstdio>
#include <cstring>
#include <string>
#include <iostream>
#include <algorithm>
int main() {
int n;
bool f=0;
scanf("%d", &n);
for(int i = 1; i <= n; ++i) {
int m = n / i;
int k = n - i * m;
if (i + m + k <= n) {
f=1;
printf("%c", 'A');
for (int j = 1; j <= k; ++j) {
printf("%c", 'R');
}
for (int j = 1; j < i; ++j) {
printf("%c", 'A');
}
for (int j = 1; j <= m; ++j) {
printf("%c", 'R');
}
break;
}
}
if (!f) puts("-1");
return 0;
} 
京公网安备 11010502036488号