算法设计与分析
蠢蠢的打码
这个作者很懒,什么都没留下…
展开
-
8602 区间相交问题(优先做)
给定x轴上n个闭区间,去掉尽可能少的闭区间,使剩下的闭区间都不相交。注意:这里,若区间与另一区间之间仅有端点是相同的,不算做区间相交。例如,[1,2]和[2,3]算是不相交区间。输入格式第一行一个正整数n(n原创 2024-08-27 14:20:42 · 664 阅读 · 0 评论 -
17082 两个有序数序列中找第k小(优先做)
已知两个已经排好序(非减序)的序列X和Y,其中X的长度为m,Y长度为n,现在请你用分治算法,找出X和Y的第k小的数,算法时间复杂度为O(max{logm, logn})。此题请勿采用将序列X和Y合并找第k小的O(m+n)的一般方法,要充分利用X和Y已经排好序的这一特性。输入格式第一行有三个数,分别是长度m、长度n和k,中间空格相连(1原创 2024-08-25 13:44:07 · 309 阅读 · 0 评论 -
17083 多重幂计数问题
给定n个变量x1,x2,x3…xn。将这些变量依次作为底和幂,可得n重幂如下: xn … x3 x2x1上述的n重幂是不确定的,当其中加入适当的括号之后,才能成为一个确定的n重幂。不同的加括号方式导致不同的n重幂。例如,当n=4时,全部的4 重幂有5个。问对n个变量计算出有多少个不同的n重幂?输入格式输入n。(1原创 2024-08-25 13:33:29 · 287 阅读 · 0 评论 -
19530 2的幂次方表示
描述:输入格式:一个正整数n(n≤20000)。输出格式:一行,符合约定的n的0,2表示(在表示中不能有空格)。输入样例:137输出样例:2(2(2)+2+2(0))+2(2+2(0))+2(0)原创 2024-08-24 23:25:08 · 437 阅读 · 0 评论 -
19448 算法设计与分析(第五版)习题2-7 集合划分问题
描述:n个元素的集合{1,2,.,n }可以划分为若干个非空子集。例如,当n=4 时,集合{1,2,3,4}可以划分为15个不同的非空子集如下:四个子集:{{1},{2},{3},{4}},三个子集:{{1,2},{3},{4}},{{1,3},{2},{4}}, {{1,4},{2},{3}},{{2,3},{1},{4}}, {{2,4},{1},{3}},{{3,4},{1},{2}},两个子集: {{1,2},{3,4}},{{1,3},{2,4}}, {{1,4},{2,3}},{{1,2,原创 2024-08-24 23:22:52 · 209 阅读 · 0 评论 -
11091 最优自然数分解问题(优先做)
问题描述:设n是一个正整数。(1)现在将n分解为若干个互不相同的自然数之和,且使这些自然数的乘积最大。(2)现在将n分解为若干个自然数之和,且使这些自然数的乘积最大。编程任务:对于给定的正整数n,编程计算问题(1)和(2)的最优分解的最大乘积。注意:1. 这里的自然数不含0但允许为1。2. 特别地,当整数n无法分解为若干互不相同的加数时,即自身视为单独的一个加数,比如输入2,问题(1)的解输出为2。而如果整数n可以分解为若干互不相同的加数时,不考虑自身为单独加数的情况,比如4,问题(1)的原创 2024-08-23 15:53:25 · 246 阅读 · 0 评论 -
19529 照明灯安装
2023滴滴笔试题 0915你负责在一条笔直的道路上安装一些照明灯。但是道路上并不是任意位置都适合安装照明灯,具体地,假设将道路看作一条起点坐标为0,终点坐标为M的线段,那么只有在x1,x2,...,xn这n个坐标可以安装照明灯,且每个坐标上最多只能安装一个照明灯。现在你要在道路上安装k个照明灯,为了使照明灯能够尽量覆盖道路,你需要使距离最近的两个照明灯尽量远。请问这个最近距离最大可以是多少?输入格式第一行是两个整数n、k,分别表示可以安装照明灯的位置数和需要安装的照明灯数量。2原创 2024-08-21 17:27:27 · 250 阅读 · 0 评论 -
17965 幸运之星(优先做)
每年新年派对的最后一个节目就是选出下年的“幸运之星”,有丰厚的大礼包的噢~~。 O(∩_∩)O所以每位参加派对的人士都摩拳擦掌跃跃欲试。选择的办法是这样约定的:(1)所有参与的人员数n,让n个人一字排开,然后至左向右从1开始报数,凡报到奇数号的全部后退剔除,剩下的人员,又至左向右报数,逢奇剔除,如此不断的递归下去,直至只有一个人为止,这个人就是“幸运之星”。(2)所有参与的人员数n,先随机抽取一个m值(从黑暗小箱中随机摸一个,m可能比n小或相等,也可能大于n),所有参与的人员列成环形,然后从原创 2024-08-04 16:06:46 · 148 阅读 · 0 评论 -
11087 统计逆序对(优先做)
设a[0…n-1]是一个包含n个数的数组,若在ia[j],则称(i, j)为a数组的一个逆序对(inversion)。比如 有5个逆序对。请采用类似“合并排序算法”的分治思路以O(nlogn)的效率来实现逆序对的统计。一个n个元素序列的逆序对个数由三部分构成:(1)它的左半部分逆序对的个数,(2)加上右半部分逆序对的个数,(3)再加上左半部分元素大于右半部分元素的数量。其中前两部分(1)和(2)由递归来实现。要保证算法最后效率O(nlogn),第三原创 2024-08-03 21:35:10 · 320 阅读 · 0 评论 -
17085 工作分配问题(优先做)
有n件工作分配给n个人,将工作i分配给第j个人需要支付劳务费用Cij。请为每人分配一个工作,并使得总劳务费用达到最小。输入格式第一行一个正整数n(1原创 2024-08-03 21:12:09 · 331 阅读 · 0 评论 -
8593 最大覆盖问题
输入格式第1行是正整数n,(n原创 2024-07-23 17:12:16 · 965 阅读 · 0 评论 -
11090 最大m段乘积和最小m段和(优先做)
一个n位十进制整数S,若将S划分为m个段,则可以得到m个整数。(1)这m个整数的乘积称为S的一个“m段乘积”,对于给定的S和m,求S的最大m段乘积。(2)这m个整数的和称为S的一个“m段和”,对于给定的S和m,求S的最小m段和。输入格式输入:三个整数,n,m,S。第一个n表示S的位数,第二个m表示分割的段数,第三个数为需要被分段的n位十进制数S。n、m和S三个数中间空格相连,这里1原创 2024-07-19 17:04:59 · 201 阅读 · 0 评论 -
8597 石子划分问题
给定n个石子,其重量分别为a1,a2,a3,...,an。要求将其划分为m份,每一份的划分费用定义为这份石子中最大重量与最小重量差的平方。总划分费用为m份划分费用之和。现在对于给定的n个石子,求一种划分方案,使得总划分费用最小。输入格式第一行两个正整数n和m,接下来一行有n个正整数,表示一个石子的重量ai。(1≤n, m, ai≤1000)输出格式计算输出最小总划分费用。注意:若一份只有一个石子,那么,这份石子中最大重量与最小重量的差的平方为0。输入样例4 24 7原创 2024-07-19 16:47:30 · 171 阅读 · 0 评论 -
11074 平面分割
(1)设有n (1原创 2024-07-18 18:20:04 · 223 阅读 · 0 评论 -
8595 钱币组合的问题(优先做)
设有n种不同的钱币各若干,可用这n种钱币产生许多不同的面值。如给定面值7分,有1分3张,2分3张,5分1张,能组成给定面值7分的方法有如下4种:3个1分+2个2分; 5个;1个1分+3个2分; 4个;2个1分+1个5分; 3个;1个2分+1个5分; 2个。上面4种方案的最少张数为2个。你的编程任务:给定面值m,和n种不同面值钱币及其张数,(1) 求给定面值m能有多少种不同的构成方法数。(2) 求给定面值m最少要多少张。输入格式第1行有1个正整数n(1原创 2024-07-17 19:57:07 · 247 阅读 · 0 评论 -
8603 子集和问题(优先做)
S是一个整数集合,S={x1,x2,...,xn},c是一个整数。这里集合元素xi(1原创 2024-07-17 19:17:10 · 122 阅读 · 0 评论 -
17102 “一条路径图”的最大独立集问题
令 G=(V,E)是一个具有n个结点的无向图。如果一个结点的子集中没有两个结点交于一条边,这个子集就叫独立集。一般来说,找最大独立集是很困难的(NP难)。但是如果图G足够“简单”,那么我们可以有效的完成这个任务。如果图 G=(V,E)的结点可以写作v1,v2,...,vn,在vi和vj之间有一条边当且仅当数字i和j恰好差1,那么把这个图叫做“一条路径图”。每个结点都有权wi与之相关。一条路径图像这样,上图画的五个结点的路径,权为结点内标的整数。这里最大权值和的独立集为v2和v5,权值和为w2原创 2024-07-14 00:33:45 · 168 阅读 · 0 评论 -
17099 周工作计划安排
你正在某信息公司管理一个项目工作团队,每周你必须选择一项工作让团队来承担。所有的工作分为高压的低压的两类:(1)低压的,诸如,为小学生建立Web管理网站。低压的项目可以获得li万元。(2)高压的,诸如,涉及国家秘密或大型商业机遇的项目。高压的项目可以获得hi万元。且高压项目,必须在前一周用一周的时间来准备(前一周不做任何其他工作)。你作为项目管理者,每周,要选择一项高压的或低压的工作来做。问题模型:给定一组值l1,l2,...,ln和h1,h2,...,hn,找出一个最大价值的最优计划。原创 2024-07-14 00:31:00 · 242 阅读 · 0 评论 -
17098 广告牌最佳安放问题
有一条路从西向东M公里,是一段旅行的公路。在这段公路上放置n块广告牌,广告牌的地点:x1,x2,...,xn。如果你放一块广告牌在地点xi,就能获得ri的收益(ri>0)。该地公路局规定:两块广告牌不能小于或等于5公里。现在请你挑选并安排这些广告牌放置地点,使得你的总收益在公路局规定的限制下达到最大。输入格式第一行:公路长度M,广告牌的总数n,中间空格。(M原创 2024-07-14 00:27:43 · 436 阅读 · 1 评论 -
11080 游泳圈的最大子矩阵和
二维数组首尾相连,上下也相连,像个游泳圈或轮胎,又如何求最大子矩阵和?如游泳圈展开成3行3列的二维矩阵:-18 10 71 -20 21 38 -2那么最大的子矩阵和为:10+7+38-2=53若:2 10 71 -20 21 38 -2那么最大的子矩阵和为:10+7+2+38-2+1=56输入格式游泳圈展开成平面数组,第一行是行数m和列数n,第二行至第m+1行是数组数值,每行n个数。1原创 2024-07-14 00:19:42 · 268 阅读 · 0 评论 -
11077 最长公共子字符串(优先做)
求两个输入序列的最长的公共子字符串的长度。子字符串中的所有字符在源字符串中必须相邻。如字符串:21232523311324和字符串312123223445,他们的最长公共子字符串为21232,长度为5。输入格式两行,第一行为第一个字符串X,第二行为第二个字符串Y,字符串不含空格并以回车标示结束。X和Y的串长都不超过10000。输出格式两行,第一行为最长的公共子字符串的长度,第二行输出一个最长的公共子字符串。说明:(1)若最长的公共子字符串有多个,请输出在源字符串X中靠左的那个。原创 2024-07-12 18:17:22 · 105 阅读 · 0 评论 -
10349 数字滑雪
你喜欢滑雪吗?肯定有许多人喜欢,因为滑雪的确刺激!可是为了获得速度,滑的区域必须向低处倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。现在的问题是:给定区域中各点的高度,想知道这个区域中最长的滑雪坡道长度。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子:1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9你可以从某个点滑向上下左右相邻四个点之一,当且仅当高度减小(简化问题:当高原创 2024-07-12 18:14:01 · 169 阅读 · 0 评论 -
10303 数字三角(优先做)
问题描述:给定一个由n行数字组成的数字三角形,如下图所示。试用动态规划算法,计算出从三角顶部至底部的一条路径,使得该路径经过的数字总和最大。注意每个数字只能走向下一行左边或右边的数字,而不能跳跃的走。 7 3 8 8 1 0 2 7 4 44 5 2 6 5输入格式第一行是数字三角的行数n,1原创 2024-07-12 18:08:53 · 198 阅读 · 0 评论 -
19182 石子合并(基础版)
设有 N(N≤300) 堆石子排成一排,其编号为1,2,3,⋯,N。每堆石子有一定的质量 mi(mi≤1000)。现在要将这N堆石子合并成为一堆。每次只能合并相邻的两堆,合并的代价为这两堆石子的质量之和,合并后与这两堆石子相邻的石子将和新堆相邻。合并时由于选择的顺序不同,合并的总代价也不相同。试找出一种合理的方法,使总的代价最小,并输出最小代价。输入格式第一行,一个整数 N。第二行,N 个整数 mi。输出格式输出仅一个整数,也就是最小代价。(题目确保答案在int范围)输入样例原创 2024-07-12 17:49:03 · 181 阅读 · 0 评论 -
9717 取数对弈
取数对弈游戏问题:取数游戏是一个 2 人对策游戏。游戏开始时将 n 个数在棋盘上从左到右排成一行。甲乙双方轮流在这一行数的左右两端取数,直至全部取完 n 个数。每人所取得的数的总和为其得分值。最后双方得分多者获胜。(游戏规定由甲方先取数。)这里,甲乙双方都采用如下最优策略:1)甲每次取都希望取到的这个数使自己得分最高2)乙每次取都希望取到的这个数令甲的得分最低其实,由于两方无论怎么取,双方总和是固定的,甲每次都挑能使自己得分最高的数来取,乙要使得甲得分最低,其实也就是使自己得分最原创 2024-07-11 21:49:16 · 300 阅读 · 0 评论 -
19185 01背包问题
一个旅行者有一个最多能装 M公斤的背包,现在有 n件物品,它们的重量分别是W1,W2,...,。它们的价值分别为C1,C2,...,,求旅行者在不超过背包重量M的情况下,能获得最大总价值。PS:01背包问题也能用于个人的时间管理,如何分配时间在不同的任务上,才能最大化提升个人价值。输入格式第一行:两个整数,M(背包容量,M原创 2024-07-11 21:46:50 · 1122 阅读 · 0 评论 -
8605 删数问题
问题描述: 给定n位正整数a,去掉其中任意k个数字后,剩下的数字按原次序排列成一个新的正整数。 算法设计: 给定n (1原创 2024-06-29 14:34:54 · 193 阅读 · 0 评论 -
11083 旅游背包(优先做)
想去旅游吗?那得先准备背包!背包用来装旅游物品,现在共n种(n原创 2024-06-28 14:44:45 · 495 阅读 · 0 评论 -
19184 传球游戏
n个同学站成一个圆圈,其中的一个同学手里拿着一个球,每个同学可以把球传给自己左右的两个同学中的一个(左右任意)。从1号同学手里开始传的球,传了m次以后,又回到1号同学手里,请问有多少种不同的传球方法。两种传球方法被视作不同的方法,当且仅当这两种方法中,接到球的同学按接球顺序组成的序列是不同的。比如有三个同学1号、2号、3号,球传了3次回到1号手里的方式有1->2->3->1和1->3->2->1,共2种。输入格式一行,有两个用空格隔开的整数n,m(3≤n≤30,1≤m≤30)。输出格式原创 2024-06-28 14:39:12 · 190 阅读 · 0 评论 -
19180 集合划分问题
教材课后习题2-8n个元素的集合{1,2,...,n}可以划分若干个非空子集。例如,当n=4时,集合{1,2,3,4}可以划分为15个不同的非空子集如下:{{1},{2},{3},{4}},{{1,2},{3},{4}},{{1,3},{2},{4}},{{1,4},{2},{3}},{{2,3},{1},{4}},{{2,4},{1},{3}},{{3,4},{1},{2}},{{1,2},{3,4}},{{1,3},{2,4}},{{1,4},{2,3}},{{1,2,3},{4原创 2024-06-28 14:36:45 · 150 阅读 · 0 评论 -
17964 水桶打水
有n个人(n原创 2024-06-28 14:17:52 · 167 阅读 · 0 评论 -
10347 忙碌又贪心的泥瓦匠
村里有唯一一个泥瓦匠叫Kemo,很多人需要找Kemo修房子、修灶台、造花园……等,大家可以向Kemo预约修葺的时间和工钱。现在情况是:1)Kemo只有一个人,不能同时为两个雇主工作2)Kemo只有干完一个雇主家的活才可以在接下来的一天切换到另一个雇主家里干活。未干完一份活不可以离开,不可以为多位雇主交叉时间干活3)Kemo如果不能在预约的时间那天应约的话,这个雇主的这份钱就挣不到了Kemo比较聪明,他把大家的预约收集好,想让自己忙碌一阵子,赚最多的钱。现在请你为这个忙碌而又贪心的Kemo设原创 2024-06-25 08:18:25 · 350 阅读 · 0 评论 -
8604 运动员最佳配对问题
羽毛球队有男女运动员各n人。给定2 个n×n矩阵P和Q。P[i][j]是男运动员i和女运动员j配对组成混合双打的男运动员竞赛优势;Q[i][j]是女运动员j和男运动员i配合的女运动员竞赛优势。由于技术配合和心理状态等各种因素影响,P[i][j]不一定等于Q[i][j]。男运动员i和女运动员j配对组成混合双打的男女双方竞赛优势为P[i][j]*Q[i][j]。设计一个算法,计算男女运动员最佳配对法,使各组男女双方竞赛优势的总和达到最大。 编程任务:设计一个算法,对于给定的男女运动原创 2024-06-25 08:15:41 · 380 阅读 · 0 评论 -
8596 最长上升子序列(优先做)
当元素 ai1 < ai2 < ... < aiK. 就说这个序列是有序上升的。给定序列(a1, a2, ..., aN),存在许多这样的子序列(ai1, ai2, ..., aiK),其中1原创 2024-06-24 22:57:49 · 641 阅读 · 0 评论 -
11082 完全二叉树的种类
构造n个(2原创 2024-06-23 18:01:04 · 192 阅读 · 0 评论 -
11085 买票找零
一场激烈足球赛即将开始,售票员紧张地卖票着……。每张球票50元,现在有2n(1原创 2024-06-23 17:53:53 · 127 阅读 · 0 评论 -
17087 输出所有组合
题目:输入一个字符串,输出该字符串中字符的所有组合。举个例子,如果输入abc,它的组合有a、b、c、ab、ac、bc、abc。采用递归的方法来实现所有组合的输出。输入格式输入一个串长n和字符串,n原创 2024-06-21 13:15:29 · 199 阅读 · 0 评论 -
11081 邮局选址
道路东西走向和南北走向,将街区划分为格状,x坐标表示东西向,y坐标表示南北向,街区中任意两点(x1,y1)和(x2,y2)之间距离用|x1-x2|+|y1-y2|度量。现有n个居民点随机分布在不同街区,已知所有居民点位置(x,y)坐标,在这片区域中选一个邮局的最佳建设位置,使得n个居民点到邮局的距离总和最小。输入格式第一行居民点数n,1原创 2024-06-21 13:10:05 · 234 阅读 · 0 评论 -
11073 最热门的K个搜索串
大家都非常喜欢而习惯用baidu,google,sogou等搜索引擎来搜索自己感兴趣的资料。搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的长度为1-255字节。假设目前有一百万个记录(这些查询串的重复度比较高,除去重复后会少很多)。搜索引擎统计查询串的重复频度,一个查询串的重复频度越高,说明查询它的用户越多,也就是越热门。希望能找到最热门的10个或100个查询串。现在问题模型是:一个无序的整数数列,数列元素个数为N,1000原创 2024-06-19 14:02:38 · 126 阅读 · 0 评论 -
10344 矩阵连乘积的加括号方式数
给定n个矩阵{A1,…,An},其中Ai和Ai+1可乘,i=1,2,…,n-1。考察矩阵连乘积加括弧的方式数。如四个矩阵连乘积A1A2A3A4,共有五种不同的加括弧方式:( A1 ( A2 ( A3 A4 ) ) )( A1 ( ( A2 A3 ) A4 ) )( ( A1A2 ) ( A3 A4 ) )( A1 ( A2 A3 ) A4 )( ( ( A1 A2 ) A3 ) A4 )输入示例:4输出示例:5输入格式输入矩阵连乘积的个数n(n原创 2024-06-19 13:59:44 · 204 阅读 · 0 评论