首页 > 其他分享 >倒序排序求次数平方和最大值

倒序排序求次数平方和最大值

时间:2022-10-26 21:05:26浏览次数:59  
标签:int 最大值 平方和 ++ length Str 字符串 Input 倒序


题目描述

有一种有趣的字符串价值计算方式:统计字符串中每种字符出现的次数,然后求所有字符次数的平方和作为字符串的价值
例如: 字符串"abacaba",里面包括4个'a',2个'b',1个'c',于是这个字符串的价值为4 * 4 + 2 * 2 + 1 * 1 = 21
牛牛有一个字符串s,并且允许你从s中移除最多k个字符,你的目标是让得到的字符串的价值最小。

输入描述:


输入包括两行,第一行一个字符串s,字符串s的长度length(1 ≤ length ≤ 50),其中只包含小写字母('a'-'z')。 第二行包含一个整数k(0 ≤ k ≤ length),即允许移除的字符个数。


输出描述:


输出一个整数,表示得到的最小价值


示例1

输入

复制


aba 1


输出

复制


2


#include<iostream>
#include<algorithm>
#include<string>
using namespace std;

bool Cmp(const int a,const int b){
return a > b;
}

int main(){
string Str;int k;
vector<int> Input(26,0);
cin >> Str;
cin >> k;
for(int i = 0;i < Str.length();i ++){
Input[Str[i] - 'a'] ++;
}
sort(Input.begin(),Input.end(),Cmp);
for(int i = 0;i < k;i ++){
Input[0] --;
sort(Input.begin(),Input.end(),Cmp);
}
int Sum = 0;
for(int i = 0;i < 26;i ++ ){
Sum += Input[i] * Input[i];
}
printf("%d\n",Sum);
return 0;
}

 

标签:int,最大值,平方和,++,length,Str,字符串,Input,倒序
From: https://blog.51cto.com/u_13121994/5798509

相关文章

  • O(n)求三个数乘积的最大值
    题目描述给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1)输入描述:输入共2行,第一行包括一个整数n,表示数组长度......
  • 多次排序减去摸一个值,求平方和最小值
    题目描述有一种有趣的字符串价值计算方式:统计字符串中每种字符出现的次数,然后求所有字符次数的平方和作为字符串的价值例如:字符串"abacaba",里面包括4个'a',2个'b',1个......
  • 11、求前n个数字的平方和
    题目:输入数字N计算:12+22+32+......+N2 思路:  1、将输入的N进行依次递增。  2、写入平方和的方法。 答案:  方法一:运用递归的方法。defsun(num):i......
  • 背包问题的倒序枚举与正序枚举
    这可能是困扰很多人很长时间的问题吧。先把各个变量列出来体积为的背包,有个物品,每个物品的体积为,价值为,每个物品装一次,求最大价值来这看的肯定都是学习过基础背包的人,如果没......
  • BZOJ 4551([Tjoi2016&Heoi2016]树-倒序并查集)
    Description在2016年,佳媛姐姐刚刚学习了树,非常开心。现在他想解决这样一个问题:给定一颗有根树(根为1),有以下两种操作:1.标记操作:对某个结点打上标记(在最开始,只有结点1有标记......
  • 代码随想录训练营第十三天| 239. 滑动窗口最大值 ,347.前 K 个高频元素
    今天是第十三天,是队列相关,难度不小 239.滑动窗口最大值classSolution{publicint[]maxSlidingWindow(int[]nums,intk){intn=nums.l......
  • AcWing 1221 四平方和
    \(AcWing\)\(1221\).四平方和+自定义排序(重载<)+二分题目传送门一、题目大意四平方和定理,又称为拉格朗日定理:每个正整数都可以表示为至多\(4\)个正整数的平方和......
  • Linux中tac命令倒序查询日志
    cat命令是正序开始查询日志比如:catxxx.log|grep"sssdsd"如果日志文件比较大,那么会很慢或者直接出错 可以使用tac命令,这个是cat反过来写tacxxx.log|grep"sssdsd"......
  • 最大值
    1#include<stdio.h>intmain(){inta=0;intb=0;intc=0;scanf("%d",&a);scanf("%d",&b);scanf("%d",&c);if(a>b){if(a>c){printf("%d\n",a);......
  • ① 定义一个大小为10 的整形数组a; ② 从键盘输入10 个整数,放置到数组a 中; ③ 输出数组
    publicstaticvoidmain(String[]args){ Scannerinput=newScanner(System.in); int[]a=newint[10];//定义一个数组 //给数组的10个元素赋值 for(inti=0;i......