完美字符串

 1 #include <bits/stdc++.h>
 2 #define _xx ios_base::sync_with_stdio(0);cin.tie(0);
 3 using namespace std;
 4 typedef long long ll;
 5 int main()
 6 {
 7     int a[27];
 8     memset(a, 0, sizeof(a));
 9     string s;
10     cin >> s;
11     for(int i = 0; i < s.size(); i++)
12     {
13         if(s[i] > ‘Z‘) a[s[i] - ‘a‘]++;
14         else a[s[i] - ‘A‘]++;
15     }
16     ll ans = 0;
17     sort(a, a + 27);
18     for(int i = 1; i <= 26; i++)
19         ans += i*a[i];
20     cout << ans << endl;
21     return 0;
22 }

时间: 2024-10-27 08:48:48

完美字符串的相关文章

1090 3个数和为0 1091 线段的重叠 1182 完美字符串 1283 最小周长 1284 2 3 5 7的倍数

1090 3个数和为0 给出一个长度为N的无序数组,数组中的元素为整数,有正有负包括0,并互不相等.从中找出所有和 = 0的3个数的组合.如果没有这样的组合,输出No Solution.如果有多个,按照3个数中最小的数从小到大排序,如果最小的数相等则按照第二小的数排序. Input 第1行,1个数N,N为数组的长度(0 <= N <= 1000) 第2 - N + 1行:A[i](-10^9 <= A[i] <= 10^9) Output 如果没有符合条件的组合,输出No Solu

1182 完美字符串

1182 完美字符串 基准时间限制:1 秒 空间限制:131072 KB 约翰认为字符串的完美度等于它里面所有字母的完美度之和.每个字母的完美度可以由你来分配,不同字母的完美度不同,分别对应一个1-26之间的整数. 约翰不在乎字母大小写.(也就是说字母F和f)的完美度相同.给定一个字符串,输出它的最大可能的完美度.例如:dad,你可以将26分配给d,25分配给a,这样整个字符串完美度为77. Input 输入一个字符串S(S的长度 <= 10000),S中没有除字母外的其他字符. Output

51nod贪心算法入门-----完美字符串

约翰认为字符串的完美度等于它里面所有字母的完美度之和.每个字母的完美度可以由你来分配,不同字母的完美度不同,分别对应一个1-26之间的整数. 约翰不在乎字母大小写.(也就是说字母F和f)的完美度相同.给定一个字符串,输出它的最大可能的完美度.例如:dad,你可以将26分配给d,25分配给a,这样整个字符串完美度为77. //这题水题,只要把每个字母出现的次数统计出来然后再排序一下就OK了. #include<stdio.h>#include<iostream>#include<

贪心基础入门讲解一——完美字符串

约翰认为字符串的完美度等于它里面所有字母的完美度之和.每个字母的完美度可以由你来分配,不同字母的完美度不同,分别对应一个1-26之间的整数. 约翰不在乎字母大小写.(也就是说字母F和f)的完美度相同.给定一个字符串,输出它的最大可能的完美度.例如:dad,你可以将26分配给d,25分配给a,这样整个字符串完美度为77. 分析: 由排序不等式,出现次数最多的字母显然应该给26.所以这个题目变成了统计每种字母出现的次数了,然后按照出现次数从大到小,依次分配从高到低的权值.这就是最朴素的贪心思想. 输

51Nod 1182 完美字符串 (贪心)

约翰认为字符串的完美度等于它里面所有字母的完美度之和.每个字母的完美度可以由你来分配,不同字母的完美度不同,分别对应一个1-26之间的整数. 约翰不在乎字母大小写.(也就是说字母F和f)的完美度相同.给定一个字符串,输出它的最大可能的完美度.例如:dad,你可以将26分配给d,25分配给a,这样整个字符串完美度为77. Input 输入一个字符串S(S的长度 <= 10000),S中没有除字母外的其他字符. Output 由你将1-26分配给不同的字母,使得字符串S的完美度最大,输出这个完美度.

51Nod 1182 完美字符串

Input示例 dad Output示例 77 #include "bits/stdc++.h" using namespace std; #define LL long long #define INF 0x3f3f3f3f3f #define PI acos(-1) #define N 10010 #define MOD 10 using namespace std; char str[N]; map<char,int> m; vector<int> v;

51nod贪心算法教程

51nod确实是一个好oj,题目质量不错,wa了还放数据,学习算法来说挺好的,这次我做了几个水的贪心,虽然水,但是确实都很典型. 教程链接:http://www.51nod.com/tutorial/list.html 完美字符串 约翰认为字符串的完美度等于它里面所有字母的完美度之和.每个字母的完美度可以由你来分配,不同字母的完美度不同,分别对应一个1-26之间的整数.   约翰不在乎字母大小写.(也就是说字母F和f)的完美度相同.给定一个字符串,输出它的最大可能的完美度.例如:dad,你可以将

《程序设计技术》课程辅助学习资料

本文档提供课程相关的辅助学习资料. 阅读程序是提高程序设计水平的最为有效的方法,<程序设计技术>课程至少应该阅读后面提供链接博文中的基础部分.能够阅读完基础部分的博文,则可以给课程学习奠定一个坚实的基础. 自己编写程序也是学习编程必不可少的一个环节.自己编写是否正确可以通过OJ系统来验证.选做OJ的程序设计题方便于评价自己所写的程序是否正确.想要提高编写程序的能力并且达到更高的水平,从各个OJ中选做一些编程题是十分必要的. 文中提供了CCF-CSP认证考试历年 试题的第1题的题解.这些题解中都

贪心法_1 2016.5.16

所谓"贪心算法"是指: 在对问题求解时,总是作出在当前看来是最好的选择 也就是说,不从整体上加以考虑,它所作出的仅仅是在某种意义上的局部最优解(是否是全局最优,需要证明) 特别说明: 若要用贪心算法求解某问题的整体最优解,必须首先证明贪心思想在该问题的应用结果就是最优解!! 贪心算法不是对所有问题都能得到整体最优解 关键是贪心策略的选择,选择的贪心策略必须具备无后效性 即某个状态以前的过程不会影响以后的状态,只与当前状态有关 贪心算法的证明 贪心算法的正确性,必须有严格意义的证明,一般