题意:
给你一个整数K,求出一个字符集,这个字符集经过最优的合并后,合并的花费恰好等于K。
思路:
样例给的答案让我以为这题很复杂,,但发现一个长度为n的只有一种字符的字符集,最优合并后的花费为n*(n-1)/2,,所以只要找出不同的字符集的(不同的字符集,合并时不需要花费),使得他们的和为k就行了。
代码:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int k;
scanf("%d",&k);
if(k==0)
{
cout<<"o";
return 0;
}
string ans = "";
int sum = 0;
for(int i = 'a';i<='z';i++)
{
if(sum==k)
break;
else
{
int num = 1;
ans+=i;
while(sum+num<=k)
{
ans += i;
sum += num;
num++;
}
}
}
cout<<ans;
return 0;
}
本文探讨了如何求解一个字符集,该字符集通过最优合并达到特定的成本K。介绍了核心思路并给出了实现代码,利用不同字符集合并的特性简化问题。
2244

被折叠的 条评论
为什么被折叠?



