Codeforces Round #735 (Div. 2) 2021-7-30

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;
}
上一篇:实习技术学习笔记(Excel、SQL、BI工具等)


下一篇:Codeforces Round #735 (Div. 2) A~D 题解