博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
洛谷P1106 删数问题
阅读量:4323 次
发布时间:2019-06-06

本文共 1022 字,大约阅读时间需要 3 分钟。

题目描述

键盘输入一个高精度的正整数N,去掉其中任意k个数字后剩下的数字按原左右次序将组成一个新的正整数。编程对给定的N和k,寻找一种方案使得剩下的数字组成的新数最小。

输出应包括所去掉的数字的位置和组成的新的整数。(N不超过250位) 输入数据均不需判错。

输入输出格式

输入格式:

 

n (高精度的正整数)

k (需要删除的数字个数)

 

输出格式:

 

最后剩下的最小数。

 

输入输出样例

输入样例#1:
175438 4
输出样例#1:
13 分析:贪心思想,我们每次删数肯定是要找前面的大数给删掉,并且这一位还要比下一位大,这样删掉以后一定会变小,模拟k次过程就好了,不过有几点要注意:1.可能会出现前导0.  2.如果删掉只剩下一个数,并且这个数是0,就不能把它当做前导0.
#include 
#include
#include
#include
#include
#include
using namespace std;string s;int k,cnt;bool flag = false;int main(){ cin >> s; int sizee = s.size(); scanf("%d",&k); for (int i = 1; i <= k; i++) { for (int j = 0; j < sizee - 1; j++) { if (s[j] > s[j + 1]) { for (int k = j + 1; k < sizee; k++) s[k - 1] = s[k]; break; } } sizee--; } for (int i = 0; i < sizee; i++) if (s[i] != '0' || (s[i] == '0' && flag) || sizee == 1) { cout << s[i]; if (s[i] != '0') flag = 1; } return 0;}

 

 

转载于:https://www.cnblogs.com/zbtrs/p/7517752.html

你可能感兴趣的文章
树莓派3B+学习笔记:5、安装vim
查看>>
[Spfa][bfs] Jzoj P5781 秘密通道
查看>>
企业帐号进行IPA的打包、分发、下载安装的详细流程(转载)
查看>>
《项目架构那点儿事》——快速构建Junit用例
查看>>
{"errmsg":"invalid weapp pagepath hint: [IunP8a07243949]","errcode":40165}微信的坑
查看>>
DB2V9.5数据库使用pdf
查看>>
Java Bigdecimal使用
查看>>
SQL注入之绕过WAF和Filter
查看>>
jquery validate使用方法
查看>>
DataNode 工作机制
查看>>
windows系统下安装MySQL
查看>>
错误提示总结
查看>>
实验二+070+胡阳洋
查看>>
Linux IPC实践(3) --具名FIFO
查看>>
Qt之模拟时钟
查看>>
第一次接触安卓--记于2015.8.21
查看>>
(转)在分层架构下寻找java web漏洞
查看>>
mac下多线程实现处理
查看>>
C++ ifstream ofstream
查看>>
跟初学者学习IbatisNet第四篇
查看>>