数据结构与基础算法
文章平均质量分 68
...
Fare-well
今天也要开心鸭
展开
-
奇数位丢弃(C++、Python)
对于一个由0…n的所有数按升序组成的序列,我们要进行一些筛选,每次我们取当前所有数字中从小到大的第奇数位个的数,并将其丢弃。重复这一过程直到最后剩下一个数。请求出最后剩下的数字。输入描述:多组数据,每组数据一行一个数字,为题目中的n(n原创 2022-12-06 14:25:00 · 1495 阅读 · 2 评论 -
微信红包(C++、Python)
春节期间小明使用微信收到很多个红包,非常开心。在查看领取红包记录时发现,某个红包金额出现的次数超过了红包总数的一半。请帮小明找到该红包金额。写出具体算法思路和代码实现,要求算法尽可能高效。给定一个红包的金额数组 及它的大小 ,请返回所求红包的金额若没有金额超过总数的一半,返回0数据范围:,示例1输入:输出:示例2输入:输出:Tips:以下所有代码经过实测提交可以AC,大家请放心阅读这个题和求众数非常相似,只有一点点区别常规思路,先对数组排序,再找出中位数,计算出值与中位数相等的数字个数原创 2022-12-06 16:25:24 · 1072 阅读 · 0 评论 -
最少拦截系统(Python)
以后每一发炮弹都不能超过前一发的高度.某天,雷达捕捉到敌国的导弹来袭.由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹.你说说倒蛮容易,成本呢?成本是个大问题啊.所以俺就到这里来求救了,请帮助计算一下最少需要多少套拦截系统.某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但。输入包括:导弹总个数(正整数),导弹依此飞来的高度(雷达给出的高度数据是不大于30000的正整数,用空格分隔)原创 2022-11-15 09:56:17 · 422 阅读 · 0 评论 -
排队接水问题(C++、贪心)
思路:按打水时间从小到大的顺序将所有人排序,接着确定好每个接水口前的队伍的排列顺序,也就是找出每个人应该排在哪个接水口和排在第几位(题目稍微复杂的地方就在这里),然后分别计算出每个队伍的用时,将所有队伍的用时累加起来就可以得到题目中所要求出的总的用时了,具体代码和详细注释如下(肯定有更好的解决思路,但我只能想出来这个 ╮(╯﹏╰)╭)现在有n个人排队去r个水龙头口打水,他们接满水的时间分别是t1,t2,t3…tn(都是整数),怎样安排他们打水的顺序才能让他们花费的总时间最少?原创 2022-11-15 21:34:31 · 2620 阅读 · 0 评论 -
搜索算法(子集和问题、运动员最佳匹配问题、工作分配问题、整数变换问题)
男运动员i和女运动员j配对组成混合双打的男女双方竞赛优势为P[i][j]*Q[j][i]。试设计一个算法,对于给定的2 个整数n和m,用最少的f和g变换次数将n变换为m。输入数据的第1 行有2 个正整数n 和c(n≤10000,c≤10000000),n 表示S 的大小,c是子集和的目标值。设计一个算法,对于给定的男女运动员竞赛优势,计算男女运动员最佳配对法,使各组男女双方竞赛优势的总和达到最大。接下来的n行,每行n个数,表示工作费用。对任意给定的整数n和m,计算将整数n变换为整数m所需要的最少变换次数。原创 2023-02-19 23:25:04 · 274 阅读 · 0 评论 -
贪心算法(汽车加油问题、多元Huffman编码问题、装船问题、活动选择、最优合并问题、区间覆盖问题)
输入数据的第一行有2 个正整数n和k(n≤5000,k≤1000),表示汽车加满油后可行驶n公里,且旅途中有k个加油站。输入数据的第1 行有2 个正整数n和k(n≤100000,k≤10000),表示有n堆石子,每次至少选2 堆最多选k堆石子合并。输入数据的第一行有2 个正整数n和k(n≤10000,k≤100),表示有n个点,且固定长度闭区间的长度为k。, xn 是实直线上的n 个点。对于给定的实直线上的n个点和闭区间的长度k,设计解此问题的有效算法,计算覆盖点集的最少区间数,并证明算法的正确性。原创 2022-10-25 19:19:46 · 1215 阅读 · 0 评论 -
动态规划(高数Umaru系列9——哈士奇、最少硬币问题、数字三角形问题、最长公共子序列问题、石子合并问题)
题目描述:由于高数巨养的喵星人太傲娇了,要天天吃新鲜猫粮而且还经常欺负高数巨,所以高数巨决定买几条哈士奇尝尝鲜。这天高数巨来到了二手狗市场买哈士奇,高数巨看完了所有的哈士奇,记下了每条哈士奇的价格,并根据对它们的好感程度给它们每只都赋予了一个萌值。高数现在手里有X元,她想通过购买若干条哈士奇来获得尽可能多的萌值。现在给定高数巨手里的钱X以及N条哈士奇的价格和萌值,求高数巨最多可获得多少萌值输入格式:多组输入。对于每组输入,第一行有两个整数N,X(1 < = N < = 100,1 < = X < = 1原创 2022-10-25 19:00:03 · 401 阅读 · 0 评论 -
分治算法(众数问题、整数因子分解问题、最大子段和问题、骨牌铺方格)
给定含有n个元素的多重集合S,每个元素在S中出现的次数称为该元素的重数。多重集S中重数最大的元素称为众数。例如,S={1,2,2,2,3,5}。多重集S的众数是2,其重数为3。对于给定的由n 个自然数组成的多重集S,计算S的众数及其重数。如果出现多个众数,请输出最小的那个。输入数据的第1行是多重集S中元素个数n(n原创 2022-10-25 18:40:45 · 913 阅读 · 0 评论