删数问题(Noip1994)--贪心
【题目描述】 输入一个高精度的正整数n,去掉其中任意s个数字后剩下的数字按原左右次序组成一个新的正整数。编程对给定的n和s,寻找一种方案使得剩下的数字组成的新数最小。输出新的正整数。(n不超过240位)输入数据均不需判错。【输入】 ns【输出】 最后剩下的最小数。【输入样例】 175438 4 【输出样例】 13
要考虑怎么删数是最小,这里的想法就是贪心;
从高位到低位看,如果高位大于低位,那么删掉高位的数:175438,1<7,不管;7>5,删掉7;15438,5>4,删5;
高位数越大,这个数就越大,所以我们要从高位来看,高位和下一位比较;
如果是递增的数,那么就删最后一位;位数变少,数字也会比删其他的要少;例如:123456;
#include <bits/stdc++.h>using namespace std;int main() {string a;int n,i,j,k;cin>>a>>n;int len=a.size();for(k=0;k<n;k++) //这个循环控制删数的次数{for(i=0;i<len-1;i++) //这个循环比较此位和下一位的大小{if(a[i]>a[i+1]) //删数{for(j=i;j<len-1;j++)a[j]=a[j+1];break; //删完数后,应该跳出循环,进行下一次找数删数(break不能跳出if);n次删数; }}len--; //如果不满足条件 (都是递增的数),那么长度直接减1;适用于123456这种情况;其实不管满不满足比较的条件,长度都会减1}i=0;while(i<=len-1&&a[i]=='0')i++;if(i==len)cout<<"0"<<endl;elsefor(j=i;j<=len-1;j++)cout<<a[j];return 0; }
转载于:https://www.cnblogs.com/liufei-/p/10909123.html
删数问题(Noip1994)--贪心相关推荐
- 信息学奥赛一本通 1321:【例6.3】删数问题(Noip1994) | 洛谷 P1106 删数问题
[题目链接] ybt 1321:[例6.3]删数问题(Noip1994) 洛谷 P1106 删数问题 [题目考点] 1. 贪心 [解题思路] 解法1:每次找k+1个数中的最小值 假设我们从左向右扫描每 ...
- 信息学奥赛一本通(1321:【例6.3】删数问题(Noip1994))
1321:[例6.3]删数问题(Noip1994) 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 18133 通过数: 6280 [题目描述] 输入一个高 ...
- python贪心算法求删数问题_贪心算法删数问题
删数问题 给定n位正整数a,去掉其中任意k个数字后,剩下的数字按原次序排列组成一个新的正整数.对于给定的n和k,设计一个算法,找出剩下数字组成的新数最少的删数方案. 输入示例: 178543 4 输出 ...
- P1106 删数问题【贪心】
题目描述 键盘输入一个高精度的正整数NNN(不超过250250250位) ,去掉其中任意kkk个数字后剩下的数字按原左右次序将组成一个新的正整数.编程对给定的NNN和kkk,寻找一种方案使得剩下的数字 ...
- php对于给定的正整数k,删数
[题目描述] 键盘输入一个高精度的正整数N(不超过250位),去掉其中任意k个数字后剩下的数字按原左右次 序将组成一个新的非负整数.编程对给定的N和k,寻找一种方案使得剩下的数字组成的新数最小. [输 ...
- Python(贪心算法)问题 D: 删数问题_输入一个高精度的正整数N,去掉其中任意S个数字后剩下的数字按原左右次序组成一个新的正整数。
问题 D: 删数问题 题目描述 输入一个高精度的正整数N,去掉其中任意S个数字后剩下的数字按原左右次序组成一个新的正整数. 编程对给定的N和S,寻找一种方案使得剩下的数字组成的新数最小. 输出新的正整 ...
- (经典贪心)— 删数问题
B:删数问题 时间限制: C/C++ 1000ms; Java 2000ms 内存限制: 65535KB 通过次数: 3 总提交次数: 6 问题描述 键盘输入一个正整数N,去掉其中任意S个数字后剩下的 ...
- SDUT 贪心算法 删数问题
Problem Description 键盘输入一个高精度的正整数n(≤100位),去掉其中任意s个数字后剩下的数字按照原来的左右次序组成一个新的正整数.编程对给定的n与s,寻找一种方案,使得剩下的数 ...
- 贪心算法——洛谷(P1106)删数问题
首先,我们先举一个例子: 1 7 5 4 3 8 删的个数:4 不难看出: 第一次删的应该是 7 第二次删的应该是 5 第三次删的应该是 4 第四次删的应该是 8 那么,剩下的数就是"13& ...
- 7-9 删数问题 (10 分)(思路加详解)
一:题目 有一个长度为n(n <= 240)的正整数,从中取出k(k < n)个数,使剩余的数保持原来的次序不变,求这个正整数经过删数之后最小是多少. 输入格式: n和k 输出格式: 一个 ...
最新文章
- java设计模式--观察者模式(Observer)
- win10无法检验服务器出示的ssl证书,win10系统网站启用ssL安全证书的操作方法
- java 泛型 多态_Java 多态
- ios系统定义的url
- textfield tips
- 观察者模式与发布订阅者模式的区别
- 红米开发版刷机教程_红米手机稳定版刷机教程(Recovery卡刷)的具体操作方法
- 软考中的网络工程师难考吗?
- 了解一下PMO项目管理岗
- 去哪儿 android2..3.6版本,去哪儿兜行手机版下载下载|去哪儿兜行安卓版(Android)2.1下载_太平洋下载中心...
- 扩展天气图标skycons.js, 将10个扩展到20个
- 网易2019实习生招聘-牛牛的naozhong
- 【零基础微信小程序】基于百度大脑人像分割的证件照换底色小程序实战开发
- 读书:《有无之境:王阳明哲学的精神》
- android拓展内存卡,都取消存储卡拓展,而它却解决了安卓手机的大问题
- 【解决报错原因分析】画图plt.contourf(X,Y,Z)报错TypeError: unhashable type: ‘numpy.ndarray‘(含详细示例讲解)
- BUUCTF-[HCTF 2018]admin1
- mac如何升级node版本
- 韩国通关号免费查询系统,韩国清关码校验
- 程序员推荐!JetBrains IDEs使用技巧与必备插件