CF253A Boys and Girls 题解

Content

有 \(n\) 个男生、\(m\) 个女生坐在一排,请求出这样一种方案,使得相邻两个座位之间的人的性别不同的次数最多。

数据范围:\(1\leqslant n,m\leqslant 100\)。

Solution

这题不难,就是先把能男女组合的尽量组合了,然后剩余有多的直接丢在后面不管(或者也可以先把多的求出来然后丢在前面,但是不如本方法方便,读者可以亲自尝试),但是有坑点:

  1. 这题目要开文件输入输出!所以千万不要忘了 \(\texttt{freopen}\)。
  2. 如果是女生多,则两两组合时先让女生在前,男生在后,这样才能尽可能地满足题目要求。如果是男生多,则两两组合时先让男生在前,女生在后。

跳过这些坑点,胜利其实就在眼前了。

Code

#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;

int n, m, minx;

int main() {
	freopen("input.txt", "r", stdin);
	freopen("output.txt", "w", stdout); 
	scanf("%d%d", &n, &m);
	minx = min(n, m);
	for(int i = 1; i <= minx; ++i)	
		printf(minx == n ? "GB" : "BG");
	n -= minx, m -= minx;
	if(n)	for(int i = 1; i <= n; ++i)	printf("B");
	else	for(int i = 1; i <= m; ++i)	printf("G");
	return 0;
}
上一篇:数据库SQL语句 快速入门(一)


下一篇:18 修改