Logo aaa 的博客

博客

P7227题解

...
aaa
2025-12-01 12:54:07

本文章由 WyOJ Shojo 从洛谷专栏拉取,原发布时间为 2021-03-08 16:43:07

此解不是正解! $ $

思路

我们当然是输出的单词越少越好,但是输出的单词不能到a,要到$max(a,\frac{b}{2})$。然后可以定义一个计数器sum用来记一共输出的数量,如果到了$max(a,\frac{b}{2})$就$return 0;$。然后我的暴力做法就是不停循环,一开始是1重循环,后来是2重循环…………直到sum==$max(a,\frac{b}{2})$才$return 0;$。

不多说了,上代码!

#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;

int main() {
	int a,b,c,sum=0;
	cin>>a>>b;
	c=b>>1;
	for(char i='a'; i<='z'; ++i) {
		++sum;
		if(sum-1==max(c,a))
			return 0;
		cout<<i<<' ';
	}
	for(char j='a'; j<='z'; ++j) {

		for(char i='a'; i<='z'; ++i) {
			++sum;
			if(sum-1==max(c,a))
				return 0;
			cout<<j<<i<<' ';
		}
	}
	for(char t='a'; t<='z'; ++t) {

		for(char j='a'; j<='z'; ++j) {

			for(char i='a'; i<='z'; ++i) {
				++sum;
				if(sum-1==max(c,a))
					return 0;
				cout<<t<<j<<i<<' ';
			}
		}
	}
	for(char y='a'; y<='z'; ++y) {

		for(char t='a'; t<='z'; ++t) {

			for(char j='a'; j<='z'; ++j) {

				for(char i='a'; i<='z'; ++i) {
					++sum;
					if(sum-1==max(c,a))
						return 0;
					cout<<y<<t<<j<<i<<' ';
				}
			}
		}
	}
	for(char s='a'; s<='z'; ++s) {

		for(char y='a'; y<='z'; ++y) {

			for(char t='a'; t<='z'; ++t) {

				for(char j='a'; j<='z'; ++j) {

					for(char i='a'; i<='z'; ++i) {
						++sum;
						if(sum-1==max(c,a))
							return 0;
						cout<<s<<y<<t<<j<<i<<' ';
					}
				}
			}
		}
	}
	return 0;
}

评论

暂无评论

发表评论

可以用@mike来提到mike这个用户,mike会被高亮显示。如果你真的想打“@”这个字符,请用“@@”。