删数问题 山东理工oj2072(贪心)
删数问题
Time Limit: 1000 ms Memory Limit: 65536 KiB
Problem Description
键盘输入一个高精度的正整数n(≤100位),去掉其中任意s个数字后剩下的数字按照原来的左右次序组成一个新的正整数。编程对给定的n与s,寻找一种方案,使得剩下的数字组成的新数最小。
Input
输入有多组 每组包括原始数n,要去掉的数字数s;
Output
输出去掉s个数后最小的数
Sample Input
178543 4
Sample Output
13
老师布置的算法作业顺便交一发
代码
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.PrintStream;
import java.util.Scanner;
public class Main {private static Scanner sc = new Scanner(System.in);public static void main(String[] args)throws FileNotFoundException{while(sc.hasNext()){String s = sc.next();int k = sc.nextInt();if(k >= s.length())System.out.println(0);else{int cnt = 0;for(int i = 0 ; i < s.length(); i ++)if(s.charAt(i) == '0')cnt++;if(s.length() - cnt <= k){System.out.println(0);continue;}else {while(k > 0){if(s.charAt(0) > s.charAt(1)){k--;s = s.substring(1, s.length());
// System.out.println(k + " " + s);continue;}cnt = 1;for(int i = 0 ; i < s.length() - 1; i++){if(s.charAt(i) <= s.charAt(i + 1))cnt++;else break;}if(cnt != 1)cnt--;String gg = "" + s.charAt(cnt);s = s.replaceFirst(gg,"");k--;}}while(s.charAt(0) == '0')s = s.substring(1);System.out.println(s);}}}
}
布置的作业
package 算法作业;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.PrintStream;
import java.util.Scanner;
public class H2 {private static Scanner sc = new Scanner(System.in);public static void main(String[] args)throws FileNotFoundException{try {sc = new Scanner(new FileInputStream("E:\\input.txt"));PrintStream ps = new PrintStream("E:\\output.txt");System.setOut(ps);//把创建的打印输出流赋给系统。即系统下次向 ps输出while(sc.hasNext()){String s = sc.next();int k = sc.nextInt();if(k >= s.length())System.out.println(0);else{int cnt = 0;for(int i = 0 ; i < s.length(); i ++)if(s.charAt(i) == '0')cnt++;if(s.length() - cnt <= k){System.out.println(0);continue;}else {while(k > 0){if(s.charAt(0) > s.charAt(1)){k--;s = s.substring(1, s.length());
// System.out.println(k + " " + s);continue;}cnt = 1;for(int i = 0 ; i < s.length() - 1; i++){if(s.charAt(i) <= s.charAt(i + 1))cnt++;else break;}if(cnt != 1)cnt--;String gg = "" + s.charAt(cnt);s = s.replaceFirst(gg,"");k--;}}while(s.charAt(0) == '0')s = s.substring(1);System.out.println(s);}} }catch(FileNotFoundException e) {e.printStackTrace();}}
}
删数问题 山东理工oj2072(贪心)相关推荐
- (Java实现) 删数问题
删数问题(需知道的数学定理) 给定n位正整数a,去掉其中任意k≤n 个数字后,剩下的数字按原次序排列组成一个新 的正整数.对于给定的n位正整数a和正整数 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,寻找一种方案,使得剩下的数 ...
- python贪心算法求删数问题_贪心算法删数问题
删数问题 给定n位正整数a,去掉其中任意k个数字后,剩下的数字按原次序排列组成一个新的正整数.对于给定的n和k,设计一个算法,找出剩下数字组成的新数最少的删数方案. 输入示例: 178543 4 输出 ...
- 贪心算法——洛谷(P1106)删数问题
首先,我们先举一个例子: 1 7 5 4 3 8 删的个数:4 不难看出: 第一次删的应该是 7 第二次删的应该是 5 第三次删的应该是 4 第四次删的应该是 8 那么,剩下的数就是"13& ...
- 7-9 删数问题 (10 分)(思路加详解)
一:题目 有一个长度为n(n <= 240)的正整数,从中取出k(k < n)个数,使剩余的数保持原来的次序不变,求这个正整数经过删数之后最小是多少. 输入格式: n和k 输出格式: 一个 ...
- 信息学奥赛一本通 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 [题目描述] 输入一个高 ...
- 给定n位正整数a,去掉其中任意k个数字后,剩下的数字按原次序排列组成⼀个新的正整数,求组成的新数最小的删数方案(O((n-k)logk)优化)
问题描述 给定n位正整数a,去掉其中任意k个数字后,剩下的数字按原次序排列组成⼀个新的正整数.对于给定的n和k,设计⼀个算法,找出剩下数字组成的新数最少的删数方案. 这一道题来自zyq老师的算法分析与 ...
最新文章
- 只讲关键点之兼容100+种关键点检测数据增强方法
- Git Push 不用再次输入用户名和密码方法
- 在线教育音视频质量评价与感知系统
- BERT、MT-DNN、GPT2.0、ERNIE
- HTML第二课——css
- 词汇挖掘与实体识别(未完)
- CVPR 2021 出自港中文,对抗变换提高对抗样本的可迁移性
- 【Keil】Keil5无法更改背景色和字体解决方案
- 远程协助计算机是灰色的,服务器远程协助是灰色的
- 更新智能开发研发进度
- 教师计算机知识培训内容,新学期教师计算机培训方案
- 国外的大龄程序员在干什么?
- 风笑天社会研究方法第5版笔记和课后答案
- 世界5G大会 大兴机场 随记
- 解决Macbook在win7系统下不能识别USB设备,完全没反应
- maptalk(2) -marker文字描述以及区块着色,背景卫星图
- Uniapp、Vue搭建浙里办微应用(单点登录、埋点)
- 这个表是怎么回事??? [问题点数:50分] 收藏
- fcpx如何用光流法_熟悉这些fcpx剪辑技巧 快速提高你的剪辑效率
- PKPM工程造价2008中文版​​​​​​​
热门文章
- [Linux] 通过shell给unix socket发送数据
- addEventListener监听
- 小技巧收集(10)-JS操作Cookie
- java根据回车符分隔字符串_如何通过换行符分割字符串?
- lsoci mysql_【MySQL】InnoDB日志机制深入分析
- 分治法的基本思想_归并排序-分治思想的典型应用
- 每秒处理10万高并发订单的乐视集团支付系统架构分享
- [翻译][Trident] Storm Trident 教程
- 23种设计模式的意图和适用范围
- ES5 对象的扩展(Object.preventExtensions)、密封(Object.seal)和冻结(Object.freeze)