自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(262)
  • 资源 (10881)
  • 收藏
  • 关注

原创 问题描述】星期天上午小明乘出租车去本市的外婆家。出租车计价方案为:2公里以内起步价是6元,超过2公里之后按1.8元/公里计价,超过10公里之后在1.8元/公里的基础上加价50%,另外,停车等候则

出租车计价方案为:2公里以内起步价是6元,超过2公里之后按1.8元/公里计价,超过10公里之后在1.8元/公里的基础上加价50%,另外,停车等候则按时间计费:1元/3分(注:不满3分钟不计费)。已知:小明到外婆家路程为N公里,中间停车等候时间总共。分钟,请计算小明到外婆家的出租车费用是多少元?星期天上午小明乘出租车去本市的外婆家。一个实数(表示车费,精确到0.1元)

2022-12-14 13:41:56 988 1

原创 requests的基础运用做一个英语翻译器,通过对网上任意资源进行使用或其他操作,在输入英语返回翻译后的结果,如若没有返回Not Found!,输入#号结束,要求在十分钟内完成。

english = input('请输入你要翻译的单词(输入#结束):').strip()print("请输入内容!while True: # 循环询问。print('翻译已结束')print('作者大大:元组')requests的基础运用。,在输入英语返回翻译后的。

2022-12-14 13:41:37 298

原创 贪心算法训练(四)——(HDU1050)Moving Tables

1

2022-12-13 10:20:53 263

原创 hdoj 1052 Tian Ji -- The Horse Racing 贪心算法

这道题就是解决选择策略问题。思路一:先将田忌跟齐王的马的速度数组进行一次冒泡排序1、如果田忌最慢的马比齐王最慢的马快,则比慢马2、如果田忌最慢的马比齐王最慢的马慢,则用田最慢的马跟齐最快的马比 //消耗齐的快马这是贪心的第一步3、如果田忌最慢的马的速度与齐威王最慢的马速度相等 3.1、如果田忌最快马的比齐威王最快的快,则比快马 //这是贪心的第二步 3.2、如果田忌最快马比齐威王最快的慢,田忌慢VS齐王快 3.3、如果田忌最快马比齐威王最快

2022-12-13 10:20:26 413

原创 hodj 1009 FatMouse‘ Trade--贪心算法

整体思路:整体思路就是以 JavaBean/CatFood比为基准,比值大的房间优先。使用结构体排序,结构体排序。

2022-12-12 17:56:38 75

原创 贪心算法+Java实现C的函数指针

最近在读算法的相关书籍,正好读到贪心算法,大家知道算法的书籍大多是通过C或C++来提供源码的,贪心算法经常会涉及到多个计算结果的对比然后取最优解,C++的处理方式一般都是函数指针,提供一个类似函数指针的数组,然后遍历循环每个函数获得result的结果集。然而java是没有指针的,当然更没有函数指针这一说,那遇到这种情况我们代码要怎么写呢。百度喵了一眼,看到两个字,接口。没错,就是接口。接口 + 多态,抽象来看不就是一个方法,多个实现嘛。不过区别在于函数指针可以随便指定函数,而接口相当于一个规范,不满足这

2022-12-12 17:56:32 89

原创 C++典型贪心算法--找硬币问题

Problem descriptionIn the old days before everything was electronic, you could pay for stuff with cash and (maybe) get change back. The number of coins you get could vary. For example, 10 cents in change can be done with 1 dime, or 2 nickels, or 1 nickel

2022-12-11 09:12:53 722

原创 贪心算法之——最长上升子序列

题目描述:给定一个整型数组, 求这个数组的最长严格递增子序列的长度。 譬如序列1 2 2 4 3 的最长严格递增子序列为1,2,4或1,2,3.他们的长度为3。输入:输入可能包含多个测试案例。对于每个测试案例,输入的第一行为一个整数n(1

2022-12-11 09:12:28 497

原创 带有期限的作业排序贪心算法

问题的描述:带有期限的作业排序要解决的是操作系统中单机、无资源约束且每个作业可在等量的时间内完成的作业调度问题。把这个问题形式化描述为:①要在一台机器上处理n个作业,每个作业可以在单位时间内完成②每个作业i都有一个期限值di,di>0③当作业在它规定的期限值前完成,就可以获得的效益pi,pi>0问题求解的目标是:问题的可行解是这n个作业的一个子集合J。J中的每个作业都能在各自的截止期限前完成后,产生一个作业效益之和。我们的目标就是找到一个子集J,J中的每个作业都能在各自的截止期限前完成,并且使得作业效益值的

2022-12-10 14:41:09 1627

原创 贪心算法训练(三)——最小生成树

1

2022-12-10 14:40:59 152

原创 编程实现删除数组中的重复元素

编程实现删除数组中的重复元素。解析:

2022-12-09 11:24:53 216

原创 给定一个有序数组,删除其中部分元素,使得剩下的每个数最多出现2次。要求删除的数的数量尽可能少。

给定一个有序数组,删除其中部分元素,使得剩下的每个数最多出现2次。要求删除的数的数量尽可能少。例如:给出有序数组 A =[1,1,1,2,2,3],你给出的函数应该返回length =5, A 变为[1,1,2,2,3].解析:class Solution {public:int removeDuplicates(int A[], int n) {if(n

2022-12-09 11:24:46 329

原创 给定一个数组 input[] ,如果数组长度 n 为奇数,则将数组中最大的元素放到 output[] 数组最中间的位置,如果数组长度 n 为偶数,则将数组中最大的元素放到 output[] 数组中间两

给定一个数组 input[] ,如果数组长度 n 为奇数,则将数组中最大的元素放到 output[] 数组最中间的位置,如果数组长度 n 为偶数,则将数组中最大的元素放到 output[] 数组中间两个位置偏右的那个位置上,然后再按从大到小的顺序,依次在第一个位置的两边,按照一左一右的顺序,依次存放剩下的数。例如:input[] = {3, 6, 1, 9, 7} output[] = {3, 7, 9, 6,input[] = {3, 6, 1, 9, 7, 8} output[] = {1, 6,

2022-12-08 10:24:03 295

原创 编程题,比较一个数组的元素是否为回文数组

编程题,比较一个数组的元素是否为回文数组。解析:#include#include#define N 2014int main(){char arr[N];scanf("%s",arr);char *pBegin=arr;char *pEnd=arr+(strlen(arr)-1);while(pBegin

2022-12-08 10:23:57 299

原创 给出用数字数组表示的一个非负整数,请对该整数加1。

给出用数字数组表示的一个非负整数,请对该整数加1。示例1输入[1]输出[2]解析://题目还是小伙伴解释才看懂。。。输入的数组digits表示一个大整数,每个表示一位。class Solution {public:vector plusOne(vector &digits) {const int num = 1; //待加数int carry = num; //进位for (int i = digits.size() - 1; i >= 0; i--) {digits[i] += car

2022-12-07 08:11:40 270

原创 给定一个m x n大小的矩阵(m行,n列),按螺旋的顺序返回矩阵中的所有元素

给定一个m x n大小的矩阵(m行,n列),按螺旋的顺序返回矩阵中的所有元素。数据范围:,矩阵中任意元素都满足 要求:空间复杂度,时间复杂度示例1输入[[1,2,3],[4,5,6],[7,8,9]]输出[1,2,3,6,9,8,7,4,5]解析:public ArrayList spiralOrder(int[][] matrix) {ArrayList res = new ArrayList();if (matrix.length == 0) {re

2022-12-07 08:11:19 533

原创 hdu 1528-Card Game Cheater(贪心算法)

题意不讲,怕说不清,自己一点点看吧。思路是贪心,将每个人的牌按从小到大或(从大到小),我是从小到大排的,然后每次从第二摞排中找比第一摞排的那张大且相差最小的就可以了,每次找到就sum++;最后sum值就是最优的(贪心思想)。 1 #include<stdio.h> 2 #include<algorithm> 3 #include<iostream> 4 #include<stdlib.h> 5 #include<string.h&gt

2022-12-06 19:38:05 376

原创 nyoj 题目14:会场安排问题 贪心算法

时间限制:3000 ms | 内存限制:65535 KB难度:4描述学校的小礼堂每天都会有许多活动,有时间这些活动的计划时间会发生冲突,需要选择出一些活动进行举办。小刘的工作就是安排学校小礼堂的活动,每个时间最多安排一个活动。现在小刘有一些活动计划的时间表,他想尽可能的安排更多的活动,请问他该如何安排。输入第一行是一个整型数m(m

2022-12-06 19:37:58 230

原创 数的连接|NOIP1998 T2|贪心算法

【题目链接】TYVJ1873【最大连接数】三、最大连接数 (NOIP 1998年提高组决赛第2题 maxnumber.pas)【问题描述】设有n个正整数,将他们连接成一排,组成一个最大的多位整数。例如:n=3时,3个整数13,312,343连成的最大整数为:34331213。又如:n=4时,4个整数7、13、4、246连接成的最大整数为7424613。【输入文件】两行:第一行单独一个N;第二行N个数。【输出文件】一行,连接成的多位数。【输入样例】313 312 343【输出样例】34331213【分析】很容

2022-12-05 09:39:02 339

原创 [贪心算法]java解决背包问题

闲来无事敲的几行代码,贪心算法的核心在于先排序,找到一种规律,然后根据问题要求遍历列表解决问题.贴出代码:

2022-12-05 09:38:06 525

原创 算法分析与设计复习-贪心算法描述

/求最小生成树的 普里姆(O(N^2) ---通过堆可以降到 O(N*LOG N))和克鲁斯卡尔(N*LOG N) 算法描述。把y加入X,更新在Y中与y相邻的顶点的R值,如果R[y] + length[y,w] < R[w] 那么更新w。if w 不属于 H then INSERT(H,w) //更新后w不堆中的话,插入堆中。SIFTUP(H,w) //在堆中的话,把新的key(w)移到合适的位置,维持最小堆。//文件压缩:利用哈夫曼树,根据文件中字符出现的频度,建立最小堆 O(N*LOG N)

2022-12-04 07:34:47 48

原创 有趣的算法问题12——跳跃游戏1(贪心算法)

2.在考虑算法问题的时候一定要注意细节方面的问题,我刚开始也是没有注意,六个测试组只通过了五个,后来才发现自己在。存起来去比较它和n-1的大小看是不是能跳出来,这里的跳出来指的是最后一个跳出的下标可以大于或者等于最后n-1。1.贪心算法:我感觉就是不考虑整体的利益,只考虑局部的利益,你觉得这个是当前最优的就可以执行。例如:A = [2,3,1,1,4] 能够跳跃到最后一个下标,输出true;A = [3,2,1,0,4] 不能跳跃到最后一个下标,输出false。请确认你是否能够跳跃到数组的最后一个下标。

2022-12-04 07:34:36 66

原创 【贪心算法】多机调度问题

n}, 由m台相同的机器进行加工处理. 作业i所需时间为t i. 约定:任何作业可以在任何一台机器上加工处理, 但未完工前不允许中断处理,任何作业不能拆分成更小的子作业。void MinHeap::FilterDown(const int start,const int end) //自上往下调整,使关键字小的节点在上。cout

2022-12-03 18:49:42 852

原创 动态规划算法和贪心算法的比较

2)在贪心算法中,以自顶向下的方式使用最优子结构,也就是说,贪心算法会先做出选择,在当时看起来是最优的选择,然后再求解一个结果子问题,而不是先求解子问题的最优解,然后再做出选择。1)在动态规划算法中,以自底向上的方式来利用最优子结构,也就是说,首先找到子问题的最优解,解决子问题,然后找到问题的一个最优解。1 贪心算法作出的每步贪心决策都无法改变,因为贪心策略是由上一步的最优解推导下一步的最优解,而上一部之前的最优解则不作保留。(4)根据贪心选择的标准,写出贪心选择的算法,求得最优解。

2022-12-03 18:49:35 1683

原创 常考面试算法题之贪心算法

贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,但对范围相当广泛的许多问题他能产生整体最优解或者是整体最优解的近似解。

2022-12-02 09:08:41 220

原创 算法/贪心算法/FractionalKnapsack部分背包问题

贪心算法不是对所有问题都能得到整体最优解,但对范围相当广泛的许多问题他能产生整体最优解或者是整体最优解的近似解。用贪心算法解决此问题的基本思路是,首先计算出每种物品单位质量的价值,然后依次将单位价值最高的物品尽可能多的装入背包中:若将这种物品全部装入后背包仍未满,则考虑单位质量价值次高的物品,直至背包装满。可以看出,排序在这里是非常重要的。给定N个物品和一个背包,物品i的质量是Wi,其价值位Vi,背包的容量为C,问应该如何选择装入背包的物品,使得转入背包的物品的总价值为最大?

2022-12-02 09:08:33 210

原创 贪心算法(三)——最佳合并模式

因为扩充二叉树只有度为2或0的节点,没有度为1的节点,这符合两两合并的过程。2. 在一次合并的过程中,两个文件中的所有记录都需要先从文件中读入内存,再在内存中排序,最后将排序的结果写入文件中。3. 假设两个待排序文件记录数分别为n、m,那么将这两个文件合并成一个有序的文件需要进行n+m次读写。给定n个有序文件,每个文件的记录数分别为w1~wn,请给出一种两两合并的方案,使得总合并次数最少。1. 方形节点(外界点)表示原始的文件,圆形节点(内节点)表示合并过程中的文件;2. 节点的权值表示文件的记录数。

2022-12-01 07:21:37 648

原创 最优分解问题-贪心算法

(2)对于n>4,能证明其能分解成几个数的和使得乘积不小于n。因此假设n分解成a和n-a(2

2022-12-01 07:21:37 968

原创 贪心算法-移除K个数字

最后发现删除4之后是最小的数字,其实仔细分析就会发现:删除这一个数字就是从左边的高位1开始比较,当发现后一个数字比前一个数字小的时候我们就需要把前一个数字删除掉,这样就能保证满足要求。3、每分离出来一个数字,就进行一些判断:当前待入栈的数字和栈顶元素比较,如果栈顶元素大且K的值要大于0(保证移除指定个数的数字)且栈不为空就要先执行出栈操作然后再把这个待入栈元素入栈。4、如果不满足3的情况,依然要考虑站是否为空的情况和待入栈的元素值是否为0的情况,因为当栈为空且待入栈的元素值为0的时候也不能入栈。

2022-11-30 13:56:07 332

原创 贪心算法在找钱问题上的使用

需要说明的是,在一些情况下,找零钱问题使用贪心算法并不能得到整体最优解,其结果可能只是最优解的很好近似。比如,如果提供找零的面值是11,5,1,找零15。对于此类问题,贪心算法采取的方式是找钱时,总是选取可供找钱的硬币的最大值。比如,需要找钱数为25时,找钱方式为20+5,而不是10+10+5。使用贪心算法找零方式为11+1+1+1+1,需要五枚硬币,而最优解为5+5+5,只需要3枚硬币。对于现实生活中的找零问题,假设有数目不限,面值为20,10,5,1的硬币。求出找零方案,要求:使用数目最少的硬币。

2022-11-30 13:55:52 406

原创 XYNUOJ 1257 捕杀恶龙—贪心算法

动物园有一条n个头的恶龙,你希望雇佣一些骑士把它杀死(也就是砍掉所有的头)。现在有m个骑士可以雇佣,一个能力值为 x 的骑士可以砍掉恶龙一个直径不超过 x 的头,且需要支付 x 个金币。如何雇佣骑士才能砍掉恶龙所有的头,并且支付最小的金币?(注意:一个骑士只能砍一个头并且仅能被雇佣1次。输入多组数据,第一行二个整数n、m,(1

2022-11-29 10:30:39 54

原创 纪念品 (贪心算法)

为使得参加晚会的同学所获得的纪念品价值相对均衡,他要把购来的纪念品根据价格进行分组,但每组最多只能包括两件纪念品,并且每组纪念品的价格之和不能超过一个给定的整数。第3~n+2行每行包含一个正整数pi (5

2022-11-29 10:30:39 93

原创 背包问题之贪心算法实现

Code:

2022-11-28 07:40:27 219

原创 可拆分背包问题(贪心算法)

本题跟传统的0-1背包问题不同,本题中的物体可以分成任意份,所以我们可以运用贪心算法,根据物品的性价比(价值 / 质量)来解题,根据性价比的高低依次将物体放入背包中,当物体不能完全放入背包时,总价值 = 完全放入物品的价值 + 背包剩余空间 * 接下来应放入背包物品的性价比。这里有n种不同值v[i]和权重w[i]的对象(如果选择该对象的w[i]可以获得值v[i])。第一行输入n W(0

2022-11-28 07:40:17 481

原创 贪心算法_活动安排问题

贪心选择性:由于结束时间的单调递增排序,可以知道第一次贪心选择的是A1,如果能够证明A1必属于某一个全局最优解(这里的全局最优解可能有多个),就证明了问题的贪心选择特性。或者可以说,是否最优子结构特性只是贪心算法问题的一个特性而已,即这个问题如果是可以贪心算法求解最优解的,那么它必定具有最优子结构特性。1、动态规划通常是自底向上求解问题的(当然也可以是"带备忘"的自顶向下求解问题),每一次选择都面向多个子问题选择,只不过这些子问题的解都是基于那些已经求解的子子问题的解。* 贪心算法解活动安排问题。

2022-11-27 08:09:14 2212

原创 基于贪心算法的几类区间覆盖问题

区间长度8,可选的覆盖线段[2,6],[1,4],[3,6],[3,7],[6,8],[2,4],[3,5]区间长度8,可选的覆盖线段[2,6],[1,4],[3,6],[3,7],[6,8],[2,4],[3,5]1、排序:将每一个区间按右端点进行递增顺序排列,拍完序后为[1,4],[2,4],[3,5],[2,6],假设第一步加入[1,4],那么下一步能够选择的有[2,6],[3,5],[3,6],[3,7],已经覆盖到的区域的右端点的线段中,右端点最大的线段在加入,直到已经覆盖全部的区域。

2022-11-27 08:09:05 1395

原创 哈夫曼树--贪心算法

void Select(HTNode ht[], int k, int *s1, int *s2){// ht[1...k]中选择parent为0,并且weight最小的两个结点,其序号由指针变量s1,s2指示。void HuffmanCoding(HTNode ht[],HTCode hc[],int n){// 构造Huffman树ht,并求出n个字符的编码。void Init(HTCode hc[], int *n){// 初始化,读入待编码字符的个数n,从键盘输入n个字符和n个权值。

2022-11-26 09:14:34 504

原创 贪心算法--找换硬币

如果不大于,则找换集合中的CurrentMax指向下一个元素,执行此步骤。c) 找换集合的元素如果是{1,3,4},被找换的元素如果是10 ,那么采用上述方法得到的找换方法是:4,4,1,1。b) 假设可换的硬币的单位是c的幂,也就是c^0,c^1,c^2,c^3……d) 请给出一种O(nk)时间的算法,它能够对任意K种不同单位的硬币集合进行找换,假设其中一种硬币单位是一分的。a) 请给出一个贪心算法,使得所换硬币包括一角的,五分的,二角五分的和一分的。

2022-11-26 09:14:20 483

原创 用贪心算法求解背包问题

但这最后一次的方法可能不符合使背包每次获得最大效益增量的量度标准,这可以换一种能获得最大增量的物品,将它(或它的一部分)放入背包,从而使最后一次装包也符合量度标准的要求。已知有n种物品和一个可容纳M重量的背包,每种物品i的重量为。显然,由于背包容量是M,因此,要求所有选中要装入背包的物品总重量不得超过M.。现需解决的问题是,这些物品重量的和大于M,该如何装包。//P(1:n)和W(1:n)分别含有按P(i)/W(i)≥P(i+1)/ W (i+1)排序的n件物品的效益值和重量。求所给背包问题的最优解。

2022-11-25 12:43:33 1648

原创 nyij 6 喷水装置(一)【贪心算法】

现有一块草坪,长为20米,宽为2米,要在横中心线上放置半径为Ri的喷水装置,每个喷水装置的效果都会让以它为中心的半径为实数Ri(0

2022-11-25 12:43:25 50

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除