删数问题

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. 那英、那狗、那年、那事
  2. [linux]centOS 7.6 安装ntp
  3. Oracle 数据库连接工具
  4. 电脑蓝屏日志存在哪里_Win10蓝屏日志在哪里 蓝屏查看工具BlueScreenView使用教程...
  5. 倍加福编码器ENI58IL-H12BA5-1024UD1-RC5
  6. CentOS7设置镜像源
  7. 使用STVP 下载STM32程序之后,弹出 Problem while trying to Run core of device. 的解决办法
  8. 一个计算机专业女孩的求学之路——七年之痒,痒之感悟
  9. 技术解读:Dragonfly 基于 P2P 的智能镜像加速系统
  10. java 生成临时目录_如何在Java中创建临时目录/文件夹?
  11. OneDrive,在云端
  12. 利用华为短信包开发短信功能中中文转码和msgId获取经验
  13. 快速上手MATLAB
  14. 推荐6款地球表面最强软件的电脑软件
  15. 使用阿里云ECS绑定弹性公网IP搭建反向代理服务器
  16. oracle8i substr,Oracle中INSTR和SUBSTR的用法
  17. web调用服务器的exe文件,浏览器Web调用exe程序文件
  18. t510 bios 盲刷 恢复
  19. linux磁盘分区表 清理,linux 磁盘分区表
  20. 唐诗宋词 V2.5 软件下载 唐诗三百首 宋词三百首 唐诗宋词三百首 下载

热门文章

  1. 15个非常有用的Adobe Flex教程
  2. hive concat_w实现将多行记录合并成一行
  3. 大数据开发之路:hive篇,你看了吗?
  4. CISCO OSPF-NSSA实验
  5. SharePoint服务器端对象模型 之 使用CAML进行数据查询(Part 4)
  6. 让Android的输入框与文本框带滚动条ScrollView
  7. 如何在VM ware虚拟环境下建立纯软双机热备
  8. spring 事务的传播行为详解(转)
  9. leetcode_684. Redundant Connection
  10. mysql(6)-mysql的视图功能和存储过程