本文章由 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;
}

鲁ICP备2025150228号