51Nod 之贪心1
2015-10-24 23:05
176 查看
贪心简单题1
现在真的是水的不行啊。。水题都。。。。555。。。
输入
输出
输入示例
输出示例
#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<cstring>
bool cmp(int x,int y)
{
return x>y;
}
const int maxn=10000;
using namespace std;
int main()
{
int n,i,j;
char s[maxn];
int a[30];
memset(a,0,sizeof(a));
scanf("%s",s);
n=strlen(s);
for(i=0;i<n;i++)
{
if(s[i]>='A'&&s[i]<='Z')
s[i]=tolower(s[i]);//将大写字母转换为小写,对应的有toupper。。
a[s[i]-'a']++;//记录某种字母的个数
}
sort(a,a+26,cmp);
int t=26,sum=0;
for(i=0;i<26;i++)
{
sum+=a[i]*t;
t--;
}
printf("%d\n",sum);
return 0;
}
现在真的是水的不行啊。。水题都。。。。555。。。
输入
输入一个字符串S(S的长度 <= 10000),S中没有除字母外的其他字符。
输出
由你将1-26分配给不同的字母,使得字符串S的完美度最大,输出这个完美度。
输入示例
dad
输出示例
77
#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<cstring>
bool cmp(int x,int y)
{
return x>y;
}
const int maxn=10000;
using namespace std;
int main()
{
int n,i,j;
char s[maxn];
int a[30];
memset(a,0,sizeof(a));
scanf("%s",s);
n=strlen(s);
for(i=0;i<n;i++)
{
if(s[i]>='A'&&s[i]<='Z')
s[i]=tolower(s[i]);//将大写字母转换为小写,对应的有toupper。。
a[s[i]-'a']++;//记录某种字母的个数
}
sort(a,a+26,cmp);
int t=26,sum=0;
for(i=0;i<26;i++)
{
sum+=a[i]*t;
t--;
}
printf("%d\n",sum);
return 0;
}
相关文章推荐
- Nod51贪心2
- python正则表达式
- python 用requests模块自动登录
- java.lang.OutOfMemoryError: PermGen space及其解决方法
- Stackoverflow上人气最旺的10个Java问题
- 在Ubuntu上安装OpenCV3.0和Python-openCV的经历
- JavaWeb-JSP 请求转发和请求重定向
- Struts标签、Ognl表达式、el表达式、jstl标签库这四者之间的关系和各自作用
- SpringIoC初始化BeanDefinition解析——注册
- python开发环境必备之vim配置
- 006--C++动态内存(简介)
- PHP命名空间规则解析及高级功能
- Java计算圆周率
- Spring事务配置的5种方式
- C++在命令行中回车实现默认输入
- Java实现二叉树的构建与遍历
- PHP中的命名空间(namespace)及其使用详解
- 从头认识java-3.1 for each
- 从头认识java-3.1 for each
- Java Web 技术整合基础篇1 web产生及发展