51nod-完美字符串(贪心)
约翰认为字符串的完美度等于它里面所有字母的完美度之和。每个字母的完美度可以由你来分配,不同字母的完美度不同,分别对应一个1-26之间的整数。
约翰不在乎字母大小写。(也就是说字母F和f)的完美度相同。给定一个字符串,输出它的最大可能的完美度。例如:dad,你可以将26分配给d,25分配给a,这样整个字符串完美度为77。
分析: 由排序不等式,出现次数最多的字母显然应该给26。所以这个题目变成了统计每种字母出现的次数了,然后按照出现次数从大到小,依次分配从高到低的权值。这就是最朴素的贪心思想。
最后,我们来提供输入输出数据,由你来写一段程序,实现这个算法,只有写出了正确的程序,才能继续后面的课程。
输入一个字符串S(S的长度 <= 10000),S中没有除字母外的其他字符。
由你将1-26分配给不同的字母,使得字符串S的完美度最大,输出这个完美度。
dad
输出示例
77
#include<stdio.h>
#include<algorithm>
#include<string.h>
using namespace std;
#define ll __int64
char a[100600];
int vis[30];
int main()
{
    while(~scanf("%s",a))
    {
        int n=strlen(a);
        for(int i=0;i<n;i++)
        {
            if(a[i]>='A'&&a[i]<='Z')
            {
                a[i]+=32;
            }
            vis[a[i]-'a']++;
        }
        ll cnt=26;
        ll output=0;
        sort(vis,vis+26);
        for(int i=25;i>=0;i--)
        {
            output+=vis[i]*cnt;
            cnt--;
        }
        printf("%I64d\n",output);
    }
}												
											51nod-完美字符串(贪心)的更多相关文章
- 51Nod 1182 完美字符串(字符串处理 贪心 Facebook Hacker Cup选拔)
		
1182 完美字符串 题目来源: Facebook Hacker Cup选拔 基准时间限制:1 秒 空间限制:1 ...
 - 51nod 1182 完美字符串【字符串排序+哈希】
		
1182 完美字符串 题目来源: Facebook Hacker Cup选拔 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 收藏 关注 约翰认为字符串的完美度等 ...
 - 51nod 1277 字符串中的最大值
		
题目链接 51nod 1277 字符串中的最大值 题解 对于单串,考虑多串的fail树,发现next数组的关系形成树形结构 建出next树,对于每一个前缀,他出现的次数就是他子树的大小 代码 #inc ...
 - 51nod贪心算法入门-----完美字符串
		
约翰认为字符串的完美度等于它里面所有字母的完美度之和.每个字母的完美度可以由你来分配,不同字母的完美度不同,分别对应一个1-26之间的整数. 约翰不在乎字母大小写.(也就是说字母F和f)的完美度相同. ...
 - (贪心 字符串  打好基础)51nod 1182完美字符串
		
约翰认为字符串的完美度等于它里面所有字母的完美度之和.每个字母的完美度可以由你来分配,不同字母的完美度不同,分别对应一个1-26之间的整数. 约翰不在乎字母大小写(也就是说字母A和a的完美度相同).给 ...
 - 51Nod 1182 完美字符串 (贪心)
		
约翰认为字符串的完美度等于它里面所有字母的完美度之和.每个字母的完美度可以由你来分配,不同字母的完美度不同,分别对应一个1-26之间的整数. 约翰不在乎字母大小写.(也就是说字母F和f)的完美度相同. ...
 - 51Nod:完美字符串
		
约翰认为字符串的完美度等于它里面所有字母的完美度之和.每个字母的完美度可以由你来分配,不同字母的完美度不同,分别对应一个1-26之间的整数. 约翰不在乎字母大小写.(也就是说字母F和f)的完美度相同. ...
 - - > 贪心基础入门讲解一——完美字符串
		
约翰认为字符串的完美度等于它里面所有字母的完美度之和.每个字母的完美度可以由你来分配,不同字母的完美度不同,分别对应一个1-26之间的整数. 约翰不在乎字母大小写.(也就是说字母F和f)的完美度相同. ...
 - 51Nod 1182 完美字符串
		
Input示例 dad Output示例 77 #include "bits/stdc++.h" using namespace std; #define LL long long ...
 - 51Nod 1277 字符串中的最大值(KMP,裸题)
		
1277 字符串中的最大值 题目来源: Codility 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 一个字符串的前缀是指包含该字符第一个字母的连续子串,例如: ...
 
随机推荐
- java基础开发—jstl标签库
			
在DRP项目中.接触到了JSTL标签库. 在未使用Jstl之前,我们使用JSP脚本实现一些声明或是表达式任务,做一些业务相关操作时,须要在页面中嵌入大量的java代码.在DRP项目开发前期.使用jsp ...
 - kvc和kvo的使用情况的了解
			
了解cocoa:Cocoa是苹果公司为Mac OS X所创建的原生面向对象的API,是Mac OS X上五大API之中的一个(其他四个是Carbon.POSIX.X11和Java). 苹果的面向对象开 ...
 - HDU4300-Clairewd’s message-KMP
			
题目链接:pid=4300">http://acm.hdu.edu.cn/showproblem.php?pid=4300 题目意思真的非常难读懂. 题意:给定两组字符串,第一组仅仅有 ...
 - zoj3822 Domination 概率dp --- 2014 ACM-ICPC Asia Mudanjiang Regional Contest
			
一个n行m列的棋盘,每次能够放一个棋子.问要使得棋盘的每行每列都至少有一个棋子 须要的放棋子次数的期望. dp[i][j][k]表示用了k个棋子共能占据棋盘的i行j列的概率. 那么对于每一颗棋子,在现 ...
 - 什么是 SHTML
			
什么是 SHTML 使用SSI(Server Side Include)的html文件扩展名,SSI(Server Side Include),通常称为“服务器端嵌入”或者叫“服务器端包含”,是一种类 ...
 - 消除ADB错误“more than one device and emulator”的方法
			
当我连着手机充电的时候,启动模拟器调试,运行ADB指令时,报错. C:\Users\gaojs>adb shell error: more than one device and emulato ...
 - luogu3369 【模板】 普通平衡树 Splay
			
题目大意 维护一个数据结构,满足以下操作: 插入x数 删除x数(若有多个相同的数,因只删除一个) 查询x数的排名(排名定义为比当前数小的数的个数+1.若有多个相同的数,因输出最小的排名) 查询排名为x ...
 - 字符串函数---strcmp()与strncmp()详解及实现【转】
			
本文转载自:http://blog.csdn.net/lanzhihui_10086/article/details/39829623 一.strcmp()与strncmp() strcmp():st ...
 - Java-Spring MVC:JAVA之常用的一些Spring MVC的路由写法以及参数传递方式
			
ylbtech-Java-Spring MVC:JAVA之常用的一些Spring MVC的路由写法以及参数传递方式 1.返回顶部 1. 常用的一些Spring MVC的路由写法以及参数传递方式. 这是 ...
 - FastDFS介绍(非原创)
			
文章大纲 一.FastDFS介绍二.FastDFS安装与启动(Linux系统)三.Java客户端上传图片四.参考文章 一.FastDFS介绍 1. 什么是FastDFS FastDFS是用C语言编 ...