题解 P7227【[COCI2015-2016#3] ESEJ】

· · 题解

无耻地推销个人博客qwq

题目传送门

一道生成字符串的氵题

这道题要求我们生成最少 a 个、最多 b 个单词,其中要求每个单词最多不超过 15 个字母,且至少要有 b \div 2 个单词

由于 10 ^ {15} 远大于 10 ^ 5 ,所以我们完全可以靠从短到长、字典序从小到大的顺序生成包含 a \~ j 的字符串,从而氵过这道题

至于生成的方法也很简单,直接 for 循环生成数字,再分解每一位,将其 +'a' ,再输出即可

为了保险,我们最好从 1 生成到 b ,反正才 10 ^ 5 ,绝对T不飞(逃

最后放上AC代码:

#include <bits/stdc++.h>
using namespace std;
int n, cnt;
int main()
{
    cin >> n;
    cin >> n;
    for (int i = 1; i <= n; ++i)
    {
        cnt = i;
        while (cnt) {putchar((cnt % 10) + 'a'); cnt /= 10;}
        putchar(' ');
    }
    return 0;
}

在题解的最后,求赞求滋磁啦0v0