![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法设计与分析
文章平均质量分 53
实验题和练习题
YKYBF
这个作者很懒,什么都没留下…
展开
-
算法实现题6-8最佳调度问题
问题描述:算法设计:数据输入:输入样例:结果输出:输出样例:原创 2021-06-03 15:48:58 · 2222 阅读 · 0 评论 -
算法实现题5-3最小重量机器设计问题
问题描述:设某一机器由n个部件组成,每一种部件都可以从m个不同的供应商处购得。设 w[i][j] 是从供应商j处购得的部件 i 的重量, c[i][j]是相应的价格。试设计一个算法,给出总价格不超过 c的最小重量机器设计。算法设计:对于给定的机器部件重量和机器部件价格,计算总价格不超过 d 的最小重量机器设计。数据输入:第一行有 3 个正整数 n ,m 和 d。接下来的 2n 行,每 行 n 个数。前 n 行是 c,后 n 行是 w。输入样例:3 3 41 2 33 2 12 2..原创 2021-05-22 11:56:03 · 1526 阅读 · 0 评论 -
算法实现题5-13工作分配问题
问题描述:设有n件工作分配给n个人。将工作i分配给第j个人所需的费用为 cij。试设计一个算法,为每一个人都分配1 件不同的工作,并使总费用达到最小。算法设计:设计一个算法,对于给定的工作费用,计算最佳工作分配方案,使总费用达到最小。数据输入:第一行有1 个正整数n (1≤n≤20)。接下来的n行,每行n个数,表示工作费用。输入样例:310 2 32 3 43 4 5结果输出:输出最小总费用。输出样例:9...原创 2021-05-21 23:15:30 · 2308 阅读 · 0 评论 -
算法实现题5-1子集和问题
问题描述:子集和问题的一个实例为<S,t>.其中,S={x1,x2,....xn}是一个正整数的集合,c是一个正整数。子集和问题判定是否存在S的一个子集S1,使得 。试设计一个解子集和问题的回溯法。算法设计:对于给定的正整数的集合S={x1,x2,....xn}和正整数c,计算S的一个子集S1,使得。数据输入:第一行有2个正整数n和c,n表示S的大小,c是子集和的目标值。接下来的1行中,有n个正整数,表示集合S中的元素。输入样例:5 102 2 6 5 4结果输出:将..原创 2021-05-21 12:19:00 · 1637 阅读 · 0 评论 -
算法实现题5-15最佳调度问题
问题描述:假设有 n 个任务由 k 个可并行工作的机器来完成,完成任务 i 需要的时间为ti。试设计一个算法,找出完成这 n 个任务的最佳调度,使得完成全部任务的时间最早。算法设计:对任意给定的整数 n 和 k,以及完成任务 i 需要的时间为ti(i=1~n)。计算完成这 n 个任务的最佳调度。数据输入:第一行有 2 个正整数 n 和 k。第 2 行的 n 个正整数是完 成 n 个任务需要的时间。输入样例:7 32 14 4 16 6 5 3结果输出:输出完成全部任务的最早时间..原创 2021-05-20 13:29:57 · 4461 阅读 · 2 评论 -
算法实现题4-1会场安排问题
4-1会场安排问题问题描述:假设要在足够多的会场里安排一批活动,并希望使用尽可能少的会场。设计一个有效的贪心算法进行安排。(这个问题实际上是著名的图着色问题。若将每个活动作为图的一个顶点,不相容活动间用边相连。使相邻顶点着有不同颜色的最小着色数,相当于要找的最小会场数。)算法设计:对于给定的k个待安排的活动,计算使用最少会场的时间表。数据输入:第1行有1个正整数k,表示有k个待安排的活动。接下来的k行中,每行有2个正整数,分别表示k个待安排的活动的开始时间和结束时间。时间以0点开始的分钟计。原创 2021-05-09 11:57:16 · 1471 阅读 · 0 评论 -
算法实现题4-15最优分解问题
4-15最优分解问题问题描述:设n是一个正整数。现在要求将n分解为若干互不相同的自然数的和,且使这些自然数的乘积最大。算法设计:对于给定的正整数n,计算最优分解方案。数据输入:第1行是正整数n。输入样例:10结果输出:输出最大乘积。输出样例:30贪心策略:AC码:...原创 2021-05-08 23:44:34 · 1464 阅读 · 0 评论 -
算法实现题4-9虚拟汽车加油问题
4-9虚拟汽车加油问题问题描述:一辆虚拟汽车加满油后可行驶nkm。旅途中有若干加油站。设计一个有效算法,指出应该在那些加油站停靠加油,使沿途加油次数最少。并证明算法能产生一个最优解。算法设计:对于给定的n和k个加油站位置,计算最少加油次数。数据输入:第1行有两个整数n和k,表示汽车加满油后可行驶nkm,且旅途中有k个加油站。接下来的1行有k+1个整数,表示第k个加油站与第k-1个加油站的之间的距离。第0个加油站表示出发地,汽车已加满油。第k+1个加油站表示目的地。输入样例:7 7...原创 2021-05-08 11:04:05 · 1417 阅读 · 0 评论 -
算法实现题4-6最优服务次序问题
4-6 最优服务次序问题问题描述:设有n个顾客同时等待一项服务,顾客i需要的服务时间为ti(1≤i≤n)。应如何安排n个顾客的服务次序才能使平均等待时间达到最小?平均等待时间是n个顾客等待服务时间的总和除以n。算法设计:对于给定的n个顾客需要的服务时间,计算最优服务次序。数据输入:第1行是正整数n,表示有n 个顾客。接下来的1行中,有n个正整数,表示n个顾客需要的服务时间。输入样例:1056 12 1 99 1000 234 33 55 99 812结果输出:输出最小平均等待时间原创 2021-05-08 09:21:00 · 1521 阅读 · 0 评论 -
算法实现题4-2最优合并问题
4-2 最优合并问题问题描述:给定k 个排好序的序列s1 , s2,……, sk , 用2 路合并算法将这k 个序列合并成一个序列。假设所采用的2 路合并算法合并2 个长度分别为m和n的序列需要m + n -1次比较。试设计一个算法确定合并这个序列的最优合并顺序,使所需的总比较次数最少。为了进行比较,还需要确定合并这个序列的最差合并顺序,使所需的总比较次数最多。算法设计:对于给定的k个待合并序列,计算最多比较次数和最少比较次数合并方案。数据输入:第一行有1 个正整数k,表示有k个待合并序列。原创 2021-05-06 10:28:03 · 2945 阅读 · 0 评论 -
算法实现题3-13最大k乘积问题
问题描述:设I是一个N位的十进制整数。如果将I划分为K段,则可得到K个整数。这K个整数的乘积称为I的一个K乘积。设计一个算法,对于给定的I和K,求出I的最大K乘积。算法设计:对于给定的I和K,计算I的最大K乘积。数据输入:第一行中有2个正整数n和k。正整数n是序列的长度,正整数k是分割的段数。接下来的一行中是一个n位十进制整数(n<=10)输入样例:2 115结果输出:第一行中的数是计算出的最大k乘积。输出样例:15算法设计:AC码:...原创 2021-04-30 15:37:54 · 444 阅读 · 0 评论 -
算法实现题3-1独立任务最优调度问题
算法实现题3-1独立任务最优调度问题**问题描述:**用2 台处理机A 和B 处理n 个作业。设第i 个作业交给机器A 处理时需要时间ai,若由机器B 来处理,则需要时间bi。由于各作业的特点和机器的性能关系,很可能对于某些i,有ai >=bi,而对于某些j,j≠i,有aj < bj 。既不能将一个作业分开由2 台机器处理,也没有一台机器能同时处理2 个作业。设计一个动态规划算法,使得这2 台机器处理完这n个作业的时间最短(从任何一台机器开工到最后一台机器停工的总时间)。研究一个实例: (a1原创 2021-04-29 09:26:58 · 1541 阅读 · 0 评论 -
算法实现题3-8最小m段和问题
算法实现题3-8最小m段和问题问题描述:给定n个整数组成的序列,现在要求将序列分割为m段,每段子序列中的数在原序列中连续排列。如何分割才能使这m段子序列的和的最大值达到最小?算法设计:给定n个整数组成的序列,计算该序列的最优m段分割,使m段子序列的和的最大值达到最小。数据输入:第1行中有2个正整数n和m。正整数n是序列的长度;正整数m是分割的段数。接下来的一行中有n个整数。输入样例:1 110结果输出:第1行中的数是计算出的m段子序列的和的最大值的最小值。输出样例:原创 2021-04-23 16:58:41 · 2826 阅读 · 0 评论 -
算法实现题3-3石子合并问题
算法实现题3-3石子合并问题问题描述:在一个圆形操场的四周摆放着n堆石子。现要将石子有次序地合并成一堆。规定每次只能选相邻的2 堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分。试设计一个算法,计算出将n堆石子合并成一堆的最小得分和最大得分。算法设计:对于给定n堆石子,计算合并成一堆的最小得分和最大得分。数据输入:第一行是正整数n(1<=n<=100),表示有n堆石子。第2行有n个数,分别表示每堆石子的个数。输入样例:数据输出:第1行的数是最小得分,第2行中的数是最大得分输原创 2021-04-16 18:43:45 · 7059 阅读 · 1 评论 -
算法实现题 统计数字问题
算法实现题 1-1 统计数字问题问题描述: 一本书的页码从自然数 1 开始顺序编码直到自然数 n。书的页码按照通常的习惯编排, 每个页码都不含多余的前导数字 0。例如,第 6 页用数字 6 表示,而不是 06 或 006 等。数 字计数问题要求对给定书的总页码 n,计算出书的全部页码中分别用到多少次数字 0,1, 2,…,9。编程任务: 给定表示书的总页码的 10 进制整数 n (1≤n≤109 ) 。编程计算书的全部页码中分别用 到多少次数字 0,1,2,…,9。数据输入:给出表示书的总页码的整数原创 2021-03-11 17:49:28 · 2135 阅读 · 1 评论 -
算法实现题 2-2 众数问题
问题描述:给定含有 n 个元素的多重集合 S,每个元素在 S 中出现的次数称为该元素的重数。多重集 S 中重数最大的元素称为众数。编程任务:对于给定的由 n 个自然数组成的多重集 S,编程计算 S 的众数及其重数。数据输入:第 1 行输入多重集 S 中元素个数 n;接下来的 n 行中,每行有一个自然数。输入样例:6 1 2 2 2 3 5结果输出:输出有 2 行,第 1 行给出众数,第 2 行是重数**输出样例:2 3数组下标表示输入的数字,数组代表出现的次数,找出原创 2021-03-18 12:57:17 · 1656 阅读 · 0 评论 -
算法实现题 2-11 集合划分问题
问题描述: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,3}原创 2021-03-18 16:20:53 · 2755 阅读 · 0 评论 -
算法实现题 2-3 半数集问题
问题描述:给定一个自然数 n,由 n 开始可以依次产生半数集 set(n)中的数如下。(1) n∈set(n);(2) 在 n 的左边加上一个自然数,但该自然数不能超过最近添加的数的一半;(3) 按此规则进行处理,直到不能再添加自然数为止。例如,set(6)={6,16,26,126,36,136}。半数集 set(6)中有 6 个元素。注意半数集是多重集。编程任务:对于给定的自然数 n,编程计算半数集 set(n)中的元素个数。数据输入:只有 1 行,给出整数 n。(0<n<原创 2021-03-18 17:45:08 · 947 阅读 · 0 评论 -
算法实现题 2-5 有重复元素的排列问题
【问题描述】设R={ r1, r2 , …, rn}是要进行排列的n个元素。其中元素r1, r2 , …, rn可能相同。试设计一个算法,列出R的所有不同排列。【编程任务】给定n 以及待排列的n 个元素。计算出这n 个元素的所有不同排列。【输入格式】文件的第1 行是元素个数n,1≤n≤500。接下来的1 行是待排列的n个元素。【输出格式】计算出的n个元素的所有不同排列输出。文件最后1行中的数是排列总数。【输入样例】4aacc【输出样例】多解aaccacacaccacaacc原创 2021-03-19 00:08:36 · 2821 阅读 · 0 评论 -
算法实现题1-3最多约束问题
问题描述: 正整数x的约数是能整除x的正整数。正整数x的约数个数记为div(x)。例如,1 2 5 10都是10的约数,且div(10)=4。设a和b是2个正整数,a<=b,找出a和b之间约数个数最多的数x。算法设计: 对于给定的2个正整数a<=b,计算a和b之间约数个数最多的数。数据输入:输入两个正整数a,b输入样例:1 36结果输出:若找到的a和b之间的约数个数最多的数是x,输出div(x)输出样例:9暴力法#include<bits/stdc++.h>u原创 2021-03-26 17:46:18 · 509 阅读 · 0 评论