删数问题

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(贪心)相关推荐

  1. (Java实现) 删数问题

    删数问题(需知道的数学定理) 给定n位正整数a,去掉其中任意k≤n 个数字后,剩下的数字按原次序排列组成一个新 的正整数.对于给定的n位正整数a和正整数 k,设计一个算法找出剩下数字组成的新数最 小的 ...

  2. Python(贪心算法)问题 D: 删数问题_输入一个高精度的正整数N,去掉其中任意S个数字后剩下的数字按原左右次序组成一个新的正整数。

    问题 D: 删数问题 题目描述 输入一个高精度的正整数N,去掉其中任意S个数字后剩下的数字按原左右次序组成一个新的正整数. 编程对给定的N和S,寻找一种方案使得剩下的数字组成的新数最小. 输出新的正整 ...

  3. (经典贪心)— 删数问题

    B:删数问题 时间限制: C/C++ 1000ms; Java 2000ms 内存限制: 65535KB 通过次数: 3 总提交次数: 6 问题描述 键盘输入一个正整数N,去掉其中任意S个数字后剩下的 ...

  4. SDUT 贪心算法 删数问题

    Problem Description 键盘输入一个高精度的正整数n(≤100位),去掉其中任意s个数字后剩下的数字按照原来的左右次序组成一个新的正整数.编程对给定的n与s,寻找一种方案,使得剩下的数 ...

  5. python贪心算法求删数问题_贪心算法删数问题

    删数问题 给定n位正整数a,去掉其中任意k个数字后,剩下的数字按原次序排列组成一个新的正整数.对于给定的n和k,设计一个算法,找出剩下数字组成的新数最少的删数方案. 输入示例: 178543 4 输出 ...

  6. 贪心算法——洛谷(P1106)删数问题

    首先,我们先举一个例子: 1 7 5 4 3 8 删的个数:4 不难看出: 第一次删的应该是 7 第二次删的应该是 5 第三次删的应该是 4 第四次删的应该是 8 那么,剩下的数就是"13& ...

  7. 7-9 删数问题 (10 分)(思路加详解)

    一:题目 有一个长度为n(n <= 240)的正整数,从中取出k(k < n)个数,使剩余的数保持原来的次序不变,求这个正整数经过删数之后最小是多少. 输入格式: n和k 输出格式: 一个 ...

  8. 信息学奥赛一本通 1321:【例6.3】删数问题(Noip1994) | 洛谷 P1106 删数问题

    [题目链接] ybt 1321:[例6.3]删数问题(Noip1994) 洛谷 P1106 删数问题 [题目考点] 1. 贪心 [解题思路] 解法1:每次找k+1个数中的最小值 假设我们从左向右扫描每 ...

  9. 信息学奥赛一本通(1321:【例6.3】删数问题(Noip1994))

    1321:[例6.3]删数问题(Noip1994) 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 18133     通过数: 6280 [题目描述] 输入一个高 ...

  10. 给定n位正整数a,去掉其中任意k个数字后,剩下的数字按原次序排列组成⼀个新的正整数,求组成的新数最小的删数方案(O((n-k)logk)优化)

    问题描述 给定n位正整数a,去掉其中任意k个数字后,剩下的数字按原次序排列组成⼀个新的正整数.对于给定的n和k,设计⼀个算法,找出剩下数字组成的新数最少的删数方案. 这一道题来自zyq老师的算法分析与 ...

最新文章

  1. 只讲关键点之兼容100+种关键点检测数据增强方法
  2. Git Push 不用再次输入用户名和密码方法
  3. 在线教育音视频质量评价与感知系统
  4. BERT、MT-DNN、GPT2.0、ERNIE
  5. HTML第二课——css
  6. 词汇挖掘与实体识别(未完)
  7. CVPR 2021 出自港中文,对抗变换提高对抗样本的可迁移性
  8. 【Keil】Keil5无法更改背景色和字体解决方案
  9. 远程协助计算机是灰色的,服务器远程协助是灰色的
  10. 更新智能开发研发进度
  11. 教师计算机知识培训内容,新学期教师计算机培训方案
  12. 国外的大龄程序员在干什么?
  13. 风笑天社会研究方法第5版笔记和课后答案
  14. 世界5G大会 大兴机场 随记
  15. 解决Macbook在win7系统下不能识别USB设备,完全没反应
  16. maptalk(2) -marker文字描述以及区块着色,背景卫星图
  17. Uniapp、Vue搭建浙里办微应用(单点登录、埋点)
  18. 这个表是怎么回事??? [问题点数:50分] 收藏
  19. fcpx如何用光流法_熟悉这些fcpx剪辑技巧 快速提高你的剪辑效率
  20. PKPM工程造价2008中文版​​​​​​​

热门文章

  1. [Linux] 通过shell给unix socket发送数据
  2. addEventListener监听
  3. 小技巧收集(10)-JS操作Cookie
  4. java根据回车符分隔字符串_如何通过换行符分割字符串?
  5. lsoci mysql_【MySQL】InnoDB日志机制深入分析
  6. 分治法的基本思想_归并排序-分治思想的典型应用
  7. 每秒处理10万高并发订单的乐视集团支付系统架构分享
  8. [翻译][Trident] Storm Trident 教程
  9. 23种设计模式的意图和适用范围
  10. ES5 对象的扩展(Object.preventExtensions)、密封(Object.seal)和冻结(Object.freeze)