最小字典序列--选靓号
A 国的手机号码由且仅由 N 位十进制数字(0-9)组成。一个手机号码中有至少 K 位数字相同则被定义为靓号。A 国的手机号可以有前导零,比如 000123456 是一个合法的手机号。
小多想花钱将自己的手机号码修改为一个靓号。修改号码中的一个数字需要花费的金额为新数字与旧数字之间的差值。比如将 1 修改为 6 或 6 修改为 1 都需要花 5 块钱。
给出小多现在的手机号码,问将其修改成一个靓号,最少需要多少钱?
输入描述:
第一行包含2个整数 N、K,分别表示手机号码数字个数以及靓号至少有 K 个数字相同。
第二行包含 N 个字符,每个字符都是一个数字('0'-'9'),数字之间没有任何其他空白符。表示小多的手机号码。
数据范围:
2 <= K <= N <= 10000
输出描述:
第一行包含一个整数,表示修改成一个靓号,最少需要的金额。
第二行包含 N 个数字字符,表示最少花费修改的新手机号。若有多个靓号花费都最少,则输出字典序最小的靓号。
输入例子1:
6 5
787585
输出例子1:
4
777577
例子说明1:
花费为4的方案有两种:777577与777775,前者字典序更小。
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;struct Node{int consume;//需要改变的数值int index; //当前索引int Ori;int Target;
};
//--实现最小字典序
bool Cmp(const Node& a,const Node& b){if(a.consume != b.consume){return a.consume < b.consume;}if(a.index < b.index){return a.Target < a.Ori;}else{return b.Target > b.Ori;}
}int main(){int N,K;string Input;int Result = 1e5+5;scanf("%d%d",&N,&K);cin >> Input;vector<Node> Vec(N);vector<int> ResultVec(N);for(int i = 9;i >= 0;i --){for(int j = 0;j < N;j ++){Vec[j].consume = abs(i - (Input[j] - '0'));Vec[j].index = j;Vec[j].Ori = Input[j] - '0';Vec[j].Target = i;}sort(Vec.begin(),Vec.end(),Cmp);int sum = 0;for(int z = 0;z < K;z ++){sum += Vec[z].consume;}if(sum < Result){Result = sum;for(int z = 0;z < N;z ++){ResultVec[z] = Input[z] - '0';}for(int j = 0;j < K;j ++){ResultVec[Vec[j].index] = i;}}}printf("%d\n",Result);for(int i = 0;i < N;i ++){printf("%d",ResultVec[i]);}printf("\n");return 0;
}
最小字典序列--选靓号相关推荐
- 拼多多笔试题(六):选靓号
问题描述: A 国的手机号码由且仅由 N 位十进制数字(0-9)组成.一个手机号码中有至少 K 位数字相同则被定义为靓号.A 国的手机号可以有前导零,比如 000123456 是一个合法的手机号. 小 ...
- java手机号码找靓号,选靓号
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ...
- 牛客选靓号即拼多多20200410笔试第三题
链接:https://www.nowcoder.com/questionTerminal/005af31a10834b3688911463065ab47d?orderByHotValue=0& ...
- 靓号站php,阿里宝卡选靓号php代码
/** * @Author: Ding Jianlong * @Date: 2018-10-29 16:00:24 * @Last Modified by: Ding Jianlong * @Last ...
- 拼多多2019秋招编程题——选靓号
编程要求: 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 题目内容: A 国的手机号码由且仅由 N 位十进制数字(0-9)组成.一个手机号码中有至少 K 位数 ...
- 拼多多:选靓号(Python语言实现)
题目描述 A国的手机号码由且仅由N位十进制数字(0-9)组成.一个手机号码中有至少K位数字相同则被定义为靓号. A国的手机号可以有前导零,比如000123456是一个合法的手机号. 小多想花钱将自己的 ...
- modelandview怎么在页面循环_新号段来啦!!!“靓号”怎么选?
它 来 了 ? ? ? 它带着满满的诚意扑面而来 深圳交警官网最新公示 2020年11月10日 新!号!段!发!放! 上万个号牌新鲜"出炉"~ 新号段发放公示 为进一步提升便民服务 ...
- Atitit 手机号码选号 规范 流程 attilax总结 v4 s81.docx 1. Keyword关键词 2 2. 靓号的定义 2 3. 靓号的重要意义 与解决问题 为什么我们需要靓号
Atitit 手机号码选号 规范 流程 attilax总结 v4 s81.docx 1. Keyword关键词 2 2. 靓号的定义 2 3. 靓号的重要意义 与解决问题 为什么我们需要靓号指南, ...
- Atitit 号码规范 靓号指南 attilax总结 v4 r926.docx 1. Keyword关键词 2 2. 为什么我们需要靓号指南,因为很多人手机号都是瞎选乱选,没有规范不成方圆
Atitit 号码规范 靓号指南 attilax总结 v4 r926.docx 1. Keyword关键词 2 2. 为什么我们需要靓号指南,因为很多人手机号都是瞎选乱选,没有规范不成方圆 ...
最新文章
- Python脚本:将mol2分子库文件拆分为单个mol2文件
- 在世界第二届半机械人奥运会上,瘫痪飞行员在Cybathlon BCI竞赛中争夺金牌
- vijos p1659——河蟹王国(线段树)(复习)
- python金字塔图绘制_如何用R或Python绘制3d(4变量)三元(金字塔)图?
- PCRE接口pcre_fullinfo混合子模式调用结果
- 人脸验证(六)--SphereFace
- Ubuntu系统安装 - 单系统
- 第二章 SQL命令参考-BEGIN
- appcan mysql_AppCan的图片、文件操作、上传、下载操作 From Ken
- SDUT - 表达式语法分析——递归子程序法
- 计算机画图照片大小,电脑自带的画图工具怎么调整图片的大小?
- android 广播的插件化
- STM32F407VET6读写GD25Q16(W25Q16)
- DIY电工维修如何拆卸和安装开关面板插座
- maven 跳过单元测试打包
- java getclass()函数
- Visual Components 4.5安装手册
- 到海马体照相馆,get你的仙女气息吧!
- 无胁科技-TVD每日漏洞情报-2022-7-30
- JASS萌新学习指南1.2
热门文章
- python 基础复习二
- 2020年最好用的手机是哪一款_目前最值得买的4部手机,2020年良心旗舰,看看你用上了哪部?...
- HyperWorks13安装教程
- 锤子坚果Pro发布后,罗永浩哭了
- Python爬虫与一汽项目【一】爬取中海油,邮政,国家电网问题总结
- android 刷机后存储空间变小,安卓手机内存越来越小的解决办法
- 发朋友圈文案被折叠了怎么办?
- 王者荣耀8月15日服务器维护,王者荣耀8月15日维护ios更新不了解 王者荣耀8月15日维护ios更新不了解决办法_蚕豆网新闻...
- 非DDS卡发送彩信(MMS)业务流程介绍
- linux 360wifi ap热点,rk3288 ap6335 linux下的wifi 热点功能使用