![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
【pta】算法
苏子沭
这个作者很懒,什么都没留下…
展开
-
【pta】7-4 双汉诺塔问题
双Hanoi塔问题是Hanoi塔问题的一种推广:有三根A、B、C三根柱子,现有n对直径大小不同的圆盘(同一对的两个圆盘直径相同),这些圆盘按照直径从大到小的次序从下到上放在A柱上,如果把1个圆盘从从一根柱子移动到另外一根柱子称作1次移动,在移动过程中允许借用B柱子,但不允许大圆盘放在小圆盘上面,每次只能移动一个圆盘。现在要用最少的步数把这些圆盘全部移到C柱,请设计一个算法求出最少移动次数。原创 2023-12-21 16:24:33 · 874 阅读 · 0 评论 -
[pta]5-8 0/1背包问题(回溯法)
0/1背包问题。给定一载重量为W的背包及n个重量为wi、价值为vi的物体,1≤i≤n,要求而且重量和恰好为W具有最大的价值。原创 2023-12-21 12:34:51 · 622 阅读 · 0 评论 -
[pta]5-5求解活动安排问题(回溯法)
假设有一个需要使用某一资源的n个活动所组成的集合S,S={1,…,n}。该资源任何时刻只能被一个活动所占用,活动i有一个开始时间bi和结束时间ei(bi原创 2023-12-21 11:43:43 · 590 阅读 · 0 评论 -
[pta]5-4求解流水作业调度问题(贪心法)
有n个作业(编号为1~n)要在由两台机器M1和M2组成的流水线上完成加工。每个作业加工的顺序都是先在M1上加工,然后在M2上加工。M1和M2加工作业i所需的时间分别为ai和bi(1≤i≤n)。流水作业调度问题要求确定这n个作业的最优加工顺序,使得从第一个作业在机器M1上开始加工,到最后一个作业在机器M2上加工完成所需的时间最少。可以假定任何作业一旦开始加工,就不允许被中断,直到该作业被完成,即非优先调度。原创 2023-12-21 11:25:51 · 870 阅读 · 0 评论 -
[pta]5-3求解多机调度问题(贪心法)
设有n个独立的作业{1,2,…,n},由m台相同的机器{1,2, …,m}进行加工处理,作业i所需的处理时间为ti(1≤i≤n),每个作业均可在任何一台机器上加工处理,但未完工前不允许中断,任何作业也不能拆分成更小的子作业。多机调度问题要求给出一种作业调度方案,使所给的n个作业在尽可能短的时间内由m台机器加工处理完成。原创 2023-12-21 11:19:56 · 765 阅读 · 0 评论 -
[pta]6-3 选择排序
* 对长度为n的数组arr执行选择排序 */请实现selectionSort函数,使排序后的数据从小到大排列。原创 2023-12-19 22:21:37 · 829 阅读 · 0 评论 -
[pta]6-1 归并排序
函数mergeSort完成归并排序(从小到大),其中Array是需要排序的数组,start是Array中排序部分的起始位置,end是Array中排序部分的结束位置。函数merge完成数组中两个相邻有序部分(从小到大)的合并,合并后元素仍然有序(从小到大),其中Array是需要排序的数组,start是第一个有序部分的起始位置,mid是第一个有序部分的结束位置,第二个有序部分的起始位置为mid+1,end是第二个有序部分的结束位置。原创 2023-12-19 21:58:39 · 612 阅读 · 0 评论 -
[pta]7-1 选择排序
本题要求从键盘读入n个整数,对这些数做选择排序。输出选择排序每一步的结果和最终结果。原创 2023-12-19 21:21:42 · 1728 阅读 · 0 评论 -
[pta]6-8 二叉排序树查找操作
本题要求实现二叉排序树的查找操作。其中BSTree结构定义如下:裁判测试程序样例:输入样例:输入第一行以-1结束的整数,为二叉排序树中元素初始序列,第二行为一个整数n,代表要查询的元素个数,第三行为n个整数,代表要查询的元素值。例如创建如下二叉排序树,输入为:输出样例:参考代码:原创 2023-12-19 16:22:58 · 1130 阅读 · 0 评论 -
[pta]6-6 求解任务分配问题(回溯法)
有n(n≥1)个任务需要分配给n个人执行,每个任务只能分配给一个人,每个人只能执行一个任务。第i个人执行第j个任务的成本是c[i][j](1≤i,j≤n)。求出总成本最小的分配方案。裁判测试程序样例:输入格式:第1行输入人数n。接下来输入n行,每行n个数,表示第i个人执行第j个任务的成本(w人员及任务编号从1到n)。先输入分配方案:按人员编号递增顺序依次输出n行,每行两个数,分别表示人员编号和任务编号。最后再输出总成本输出样例:参考代码:原创 2023-12-19 15:57:23 · 622 阅读 · 0 评论 -
[pta]6-4 哈夫曼树及编码
构造哈夫曼树,计算WPL。裁判测试程序样例:输入样例:第一行输入一个数n(1原创 2023-12-19 15:35:41 · 472 阅读 · 0 评论 -
[pta]6-3 部分背包问题(贪心法)
设有编号为1、2、…、n的n个物品,它们的重量分别为w1、w2、…、wn,价值分别为v1、v2、…、vn,其中wi、vi(1≤i≤n)均为正数。 有一个背包可以携带的最大重量不超过W。求解目标:在不超过背包负重的前提下,使背包装入的总价值最大。裁判测试程序样例:输入格式:第一行物品数n和背包容量W,接着的n行中输入每个物品的编号,重量和价值。输出装入背包的物品信息,共n行,按物品编号递增排序的物品编号及价值(物品编号从1开始)。最后一行输出总价值。输出样例1:参考代码:原创 2023-12-19 12:33:51 · 759 阅读 · 0 评论 -
[pta]6-2 求解整数拆分问题(动态规划法)
/求解算法。原创 2023-12-19 12:14:57 · 435 阅读 · 0 评论 -
[pta]6-1 求解会议安排问题(动态规划法)
陈老师是一个比赛队的主教练。有一天,他想与团队成员开会,应该为这次会议安排教室。教室非常缺乏,所以教室管理员必须接受订单和拒绝订单以优化教室的利用率。如果接受一个订单,该订单的开始时间和结束时间成为一个活动。每个时间段只能安排一个订单(即假设只有一个教室)。请你找出一个最大化的总活动时间的方法。你的任务是这样的:读入订单,计算所有活动(接受的订单)占用时间的最大值。裁判测试程序样例:输入格式:第一行是一个整数n,接着的n行中每一行包括两个整数b和e,其中b是一个订单开始时间,e是的结束时原创 2023-12-19 11:49:58 · 1394 阅读 · 3 评论 -
【pta】6-7 矩阵就地旋转
在这里描述函数接口。例如:其中Mat是矩阵的首地址,每个地址Mat[i]都是长度为N的一维数组,共有N个。要求就地将原矩阵顺时针旋转90度。/* 请在这里填写答案 */```// 定义一个函数,用于对二维数组进行转置和翻转操作int tmp;// 定义一个临时变量,用于交换元素// 以对角线为轴交换元素i < N;i++)j < N;j++)// 将第i行第j列的元素赋值给临时变量// 将第j行第i列的元素赋值给第i行第j列// 将临时变量的值赋值给第j行第i列int i = 0。原创 2023-12-19 10:14:25 · 544 阅读 · 0 评论 -
[pta]7-7 数组的动态和
给你一个列表 nums。列表「动态和」的计算公式为:runningSum[i] = sum(nums[0],nums[1]…nums[i])。请计算出给定列表的动态和。原创 2023-12-18 19:16:09 · 701 阅读 · 0 评论 -
[pta]7-10 子集和问题
设集合S={x1,x2,…,xn}是一个正整数集合,c是一个正整数,子集和问题判定是否存在S的一个子集S1,使S1中的元素之和为c。试设计一个解子集和问题的回溯法,并输出利用回溯法在搜索树(按输入顺序建立)中找到的第一个解。转载 2023-12-18 17:16:20 · 236 阅读 · 0 评论 -
【pta】7-9 硬币找钱问题
设有6 种不同面值的硬币,各硬币的面值分别为5 分,1 角,2 角,5 角,1 元,2元。现要用这些面值的硬币来购物。在购物中希望使用最少个数硬币。例如,1 次购物需要付款0.55 元,如果没有5 角的硬币,只好用2*2角+1*1角+1*5分 共4 枚硬币来付款。对于给定的各种面值的硬币个数和付款金额,计算使用硬币个数最少的交易方案。原创 2023-12-18 12:20:14 · 592 阅读 · 0 评论 -
[pta]7-8 h0145. 会议安排
学校的礼堂每天都会有许多活动,有时间这些活动的计划时间会发生冲突,需要选择出一些活动进行举办。小刘的工作就是安排学校礼堂的活动,每个时间最多安排一个活动。现在小刘有一些活动计划的时间表,他想尽可能的安排更多的活动,请问他该如何安排。原创 2023-12-18 12:13:07 · 491 阅读 · 0 评论 -
【pta】7-3 最优二叉搜索树
设 S={x1,x2,...,xn} 是有序集,且 x1原创 2023-12-17 23:23:07 · 1002 阅读 · 0 评论 -
【pta】7-1 流水作业调度
n个作业{1,2,…,n}要在由2台机器M1和M2组成的流水线上完成加工。每个作业加工的顺序都是先在M1上加工,然后在M2上加工。M1和M2加工作业i所需的时间分别为ai和bi。流水作业调度问题要求确定这n个作业的最优加工顺序,使得从第一个作业在机器M1上开始加工,到最后一个作业在机器M2上加工完成所需的时间最少。第一行给出作业个数n(0原创 2023-12-17 21:06:36 · 558 阅读 · 0 评论 -
[pta]哈夫曼树及编码
构造哈夫曼树,计算WPL。裁判测试程序样例:输入样例:第一行输入一个数n(1<n<100),表示叶子节点的个数,接下去输入n行,每行输入一个字符和一个整数,表示每个节点表示的字符和权值。输出样例:输出WPL。参考代码:原创 2023-12-17 23:45:00 · 805 阅读 · 0 评论