Problem D: Diane
题意: 输入一个数字k,输出一个满足某性质的长度为k的字符串(每种字母的子序列的数量为奇数)。
知识点: 模拟
题解: 若k为偶数(长度为2n + 2),可以输出n + 1 个 a ,b , n 个 a 来满足题意,若k为奇数,则能够在串尾加入一个c以满足题意。另外,若k = 1, 需要额外特判一个a输出。
代码:
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int n;
void solve()
{
cin >> n;
if(n == 1) {
cout << 'a' << endl;
return;
}
if(n > 1 && n % 2 == 0) {
for(int i = 1; i <= n / 2; i ++ ) {
cout << 'a';
}
cout << 'b';
for(int i = 1; i <= n / 2 - 1; i ++ ) {
cout << 'a';
}
cout << endl;
}else if(n > 1 && n % 2 != 0) {
for(int i = 1; i <= (n - 1) / 2; i ++ ) {
cout << 'a';
}
cout << 'b';
for(int i = 1; i <= (n - 1) / 2 - 1; i ++ ) {
cout << 'a';
}
cout << 'c' << endl;
}
}
int main()
{
int T;
cin >> T;
while(T -- ) solve();
return 0;
}
|