51nod 1182完美字符串

来源:互联网 发布:艾美特 暖风机知乎 编辑:程序博客网 时间:2024/05/17 01:41
Input
输入一个字符串S(S的长度 <= 10000),S中没有除字母外的其他字符。
Output
由你将1-26分配给不同的字母,使得字符串S的完美度最大,输出这个完美度。
Input示例
dad
Output示例
77<pre name="code" class="cpp">#include <iostream>#include <algorithm>#include <cstdio>#include <cstdlib>#include <cstring>using namespace std;char s[10005];int b[500];int cmp(int a,int b){return a>b;}int main(){    int sum,len;    while(scanf("%s",&s)!=EOF)    {        sum=0;        memset(b,0,sizeof(b));        len=strlen(s);        for(int i = 0;i < len ;i++)        {            if(s[i]>='a'&&s[i]<='z'){                b[s[i]]++;            }            else if(s[i]>='A'&&s[i]<='Z'){                s[i]=s[i]-27;                b[s[i]]++;            }        }        int k = 26;        sort(b,b+150,cmp);        for(int i = 0; i < 30, k >= 1; ++i, k--)        {            if(b[i]!=0){                sum=sum+b[i]*k;            }        }        cout<<sum<<endl;    }    return 0;}

                                             
0 0
原创粉丝点击