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