SDUT 贪心算法 删数问题 Problem Description 键盘输入一个高精度的正整数n(≤100位),去掉其中任意s个数字后剩下的数字按照原来的左右次序组成一个新的正整数。编程对给定的n与s,寻找一种方案,使得剩下的数字组成的新数最小。 Input 输入有多组 每组包括原始数n,要去掉的数字数s; Output 输出去掉s个数后最小...
思路分析: 想要删除之后的数字最小,我们需要用到贪心算法策略,先达到局部最优进而达到整体最优。 结合测试数据来说,在178542中删除第一个数字之后使他成为删掉一个数字之后的最小值,首先要知道这个数字原来是6位数,删掉一个数字之后使5位数,而在相同尾数下决定一个数字的大小的应该是先比较首位数字,进而比较第二位...
删数问题(贪心法) 有一个长度为n(n <= 240)的正整数,从中取出s(s < n)个数,使剩余的数保持原来的次序不变,求这个正整数经过删数之后最小是多少。 输入:178543 4 样例输出:13 把对s个数字的删除,看成是一个逐步实现的过程,每一步删除一个数字,用s步完成对s个数字的删除。每一步总是选择一个使剩...
多位数组成的数字来自给定集合,集合中前30000个元素的生成方法参见“C语言程序设计100例之(14):丑数”中的编程思路。生成了多位数后,再按例30的贪心策略进行数字的删除。(2)源程序。#include <stdio.h>int main(){int H[30001];char num[300000]={'\0'},temp[10];int k,m,i,j,t,cnt,len;scanf(...
解题思路:贪心算法,局部最优解:先删掉递增区间的末尾,若删的数不够,再从末尾开始删(此时从左往右已经是递增序列),特别注意在最后要处理开头是0的情况。注意事项:参考代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37...
用贪心算法处理删数问题 其实对于算法,我确实研究的比较少,贪心算法也接触的不多,一次偶然的机会别人让叫我给他编个小程序,我才了解到那么一点点。 这个程序是这样的,从控制台输入一个N位的数字,删除其中的K(0<K<N)位,按原顺序组成一个最大的数字,输出这个数字, 如:1891456删除其中的4位后组成的最大数为...
用贪心算法处理删数问题 NULL 博文链接:https://chaozhichen.iteye.com/blog/716383 上传者:weixin_38669628时间:2019-03-19 多机调度问题 -贪心法——C++代码 课程的随堂作业,C语言的,用dev就能运行,萌新代码,勿喷,仅仅帮助不想写作业的朋友方便一下,反正老师也不会仔细检查的 ...
贪心算法1: 贪心的概念 最优装载问题 ,要求从每行格子中取一个数,使得取出来的3个数字之和最大(贪心)。题目修改:规定从左下角出发,每次只能向上或向右移动一格,现在要求找出一条路径使得从左下角到达右上角所经过的格子中的数字之和最大,求最大值...最优无法带来全局最优,这就是不具备贪心选择性质。 什么...
删数问题(算法分析)ACM TEXT/X-C文件[634B]Ca**er 上传634B 文件格式 cpp 删数问题 算法分析 ACM 贪心算法 Description 对于一个有 n 个数字的正整数 a, 去掉其中任意 k (≤ n) 个数字后, 剩下的数字按原次序排列组成一个新的正整数. 本题对于给定的正整数 a, 请计算删去 k 个数字后得到的最...
贪心算法——删数问题 【问题描述】 假设正整数n、s,s<n。设计算法对任一给定n位数,删除其中的s位后,使得剩下的位新数最小。 【输入形式】 ex:1 2 3 9 5;删掉一个数; 1:1 2 3 5 2:1 2 3 3:1 2 【个人思路】 从第一个数开始遍历,到寻找到单调递减的第一个数(即单调递增的最后一个数),...