CodeForces

来源:互联网 发布:商城数据统计公式 编辑:程序博客网 时间:2024/05/16 16:57

From Y to Y

题目链接:From Y to Y

题意:
对于字符串s和字符c,f(s,c)表示c在s中出现的次数,若将c合并到s中,则花费f(s,c)。要求一个字符串,使得合并后的最小花费恰好等于k

思路:
可以发现,对于只有一个字符的字符串s,若它的长度为n,则花费为0+1+2+…+n-1

因此我们依次添加不同的字符凑到k即可

代码:

#include<stdio.h>int main(){    int k;    scanf("%d",&k);    if(!k)    {        puts("a");        return 0;    }    for(int i=0;i<26;++i)    {        int x=1;        while(k>=(x*(x-1)/2))            ++x;        k-=(x-2)*(x-1)/2;        for(int j=1;j<x;++j)            printf("%c",'a'+i);        if(!k)            return 0;    }}
原创粉丝点击