完美字符-简单贪心策略

题号: 10072
时限:1000ms
限制内存:32768KB
题目:
完美字符串


描述

定义一个字符串的完美度为字符串中所有字符的完美度的和. 现在给你一个只含字母的字符串s, 每一个字母的完美度由你进行分配, 可以分配给一个字母[1,26]中的一个数字作为完美度, 但每个字母的完美度必须唯一. 请你计算这个字符串可以达到的最大完美度.请注意,字母体现形式不一定都为小写,但是大写与小写字母的完美度一样,比如Aa的完美度是一样的.

输入格式

一个只含英文字母的字符串s(长度不超过100000).
输出格式

s最大的完美度.
输入样例

Ioi
输出样例

77
#include
#include
#include
using namespace std;
char s[100005];
int a[26];
int main()
{
    gets(s);
    for(int i=0;s[i]!='\0';++i)
    {
        if(s[i]>='a'&&s[i]<='z')
        s[i]=s[i]-32;
        a[s[i]-'A']++;
    }
    sort(a,a+26);
    int sum=0;
    for(int i=25;i>=0;i--)
    sum+=a[i]*(i+1);
    cout<return 0;
}

你可能感兴趣的:(acm-贪心)