zoukankan      html  css  js  c++  java
  • 奇怪的字符串

    A 奇怪的字符串
    文件名 输入文件 输出文件 时间限制 空间限制
    str.pas/c/cpp str.in str.out 1s 128MB
    题目描述
    有一天,小 A 的女票为了让小 A 证明他对她的忠诚,要求小 A 生成一个长度
    为 n 的、全由小写英文字母构成的字符串,只能使用 k 种字母。要求满足:
    • 字符串中相邻的两个字母不能相同。
    • 必须出现恰好 k 种不同的字母。
    这样的合法字符串可能有很多,小 A 的女票要求小 A 输出字典序最小的那个。
    小 A 太笨了,但是小 A 又不希望丢掉女票,希望你帮帮他。
    输入格式
    输入文件只有两个数字 n,k,含义如题。
    输出格式
    输出文件共一行,输出合法的字典序最小的字符串。
    如果不存在任意一个合法的方案,输出 −1。
    样例输入
    7 4
    样例输出
    ababacd
    数据范围
    对于 100% 的数据,1 ≤ n ≤ 10 5 ,1 ≤ k ≤ 26

    简单的模拟:注意特判

    #include<cstdio>
    #include<queue>
    #include<cstring>
    #include<iostream>
    #include<vector>
    #include<cmath>
    using namespace std;
    int n,k;
    int main()
    {
        freopen("str.in","r",stdin);
        freopen("str.out","w",stdout);
        scanf("%d%d",&n,&k);
        if((k==1&&n>1)||k>n)
        {
            cout<<-1;
            return 0;
        }
        int i=1,cnt=3;
        for( i=1;i<=n-k+2&&i<=n;i++)
        {
            if(i%2)
                printf("a");
            else printf("b");
        }
        for(i;i<=n;i++,cnt++)
        printf("%c",cnt+'a'-1);
        return 0;
    }
  • 相关阅读:
    汇总博客-Alpha
    Beta冲刺总结
    用户调查报告
    Beta成果测试总结
    Beta 冲刺 (9/9)
    Beta 冲刺 (8/9)
    Beta 冲刺 (7/9)
    Beta 冲刺 (6/9)
    Beta 冲刺 (5/9)
    Beta 冲刺 (4/9)
  • 原文地址:https://www.cnblogs.com/CLGYPYJ/p/7723232.html
Copyright © 2011-2022 走看看