PTA
A snicker
努力吧
展开
-
7-5 会场安排问题 (20 分)
题目来源:王晓东《算法设计与分析》假设要在足够多的会场里安排一批活动,并希望使用尽可能少的会场。设计一个有效的 贪心算法进行安排。(这个问题实际上是著名的图着色问题。若将每一个活动作为图的一个 顶点,不相容活动间用边相连。使相邻顶点着有不同颜色的最小着色数,相应于要找的最小 会场数。)输入格式:第一行有 1 个正整数k,表示有 k个待安排的活动。 接下来的 k行中,每行有 2个正整数,分别表示 k个待安排的活动开始时间和结束时间。时间 以 0 点开始的分钟计。输出格式:输出最少会场数。输入样例:转载 2021-05-26 21:11:15 · 890 阅读 · 0 评论 -
7-4 汽车加油问题 (20 分)
题目来源:王晓东《算法设计与分析》一辆汽车加满油后可行驶 n公里。旅途中有若干个加油站。设计一个有效算法,指出应 在哪些加油站停靠加油,使沿途加油次数最少。输入格式:第一行有 2 个正整数n和 k(k<=1000 ),表示汽车加满油后可行驶n公里,且旅途中有 k个加油站。 第二行有 k+1 个整数,表示第 k 个加油站与第k-1 个加油站之间的距离。 第 0 个加油站表示出发地,汽车已加满油。 第 k+1 个加油站表示目的地。输出格式:输出最少加油次数。如果无法到达目的地,则输出“No So原创 2021-05-26 21:09:25 · 748 阅读 · 0 评论 -
7-3 月饼 (25 分)
月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。注意:销售时允许取出一部分库存。样例给出的情形是这样的:假如我们有 3 种月饼,其库存量分别为 18、15、10 万吨,总售价分别为 75、72、45 亿元。如果市场的最大需求量只有 20 万吨,那么我们最大收益策略应该是卖出全部 15 万吨第 2 种月饼、以及 5 万吨第 3 种月饼,获得 72 + 45/2 = 94.5(亿元)。输入格式原创 2021-05-26 21:07:58 · 132 阅读 · 0 评论 -
7-1 装箱问题 (20 分) 假设有N项物品,大小分别为s 1 、s 2 、…、s i 、…、s N ,其中s i 为满足1≤s i ≤100的整数。
假设有N项物品,大小分别为s1 、s2、…、si、…、sN,其中si为满足1≤si≤100的整数。要把这些物品装入到容量为100的一批箱子(序号1-N)中。装箱方法是:对每项物品, 顺序扫描箱子,把该物品放入足以能够容下它的第一个箱子中。请写一个程序模拟这种装箱过程,并输出每个物品所在的箱子序号,以及放置全部物品所需的箱子数目。输入格式:输入第一行给出物品个数N(≤1000);第二行给出N个正整数si(1≤si≤100,表示第i项物品的大小)。输出格式:按照输入顺序输出每个物品的大原创 2021-05-22 15:52:45 · 907 阅读 · 0 评论 -
01背包问题的例题
1、558采药题目描述 辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大。现要求完成这个任务。输入 第一行有两个整数 T(1≤T≤1000) 和 M(1≤M≤100),用一个空原创 2021-05-13 00:59:47 · 200 阅读 · 1 评论 -
7-3 两个字符串的最长公共子串长度 (15 分)——PTA
求两个字符串的最长公共子串长度。输入格式:输入长度≤100的两个字符串S和T输出格式:输出两个字符串的最长公共子串长度输入样例1:ABCBDABBDCABA输出样例1:2输入样例2:ABACDEFPGHIK输出样例2:0代码:#include<bits/stdc++.h>using namespace std;int main() { char s[100], t[100]; cin>>s; cin>>t; int原创 2021-05-07 15:52:37 · 1632 阅读 · 0 评论 -
7-2 凑零钱 (30 分)——PTA
7-2 凑零钱 (30 分)——PTA韩梅梅喜欢满宇宙到处逛街。现在她逛到了一家火星店里,发现这家店有个特别的规矩:你可以用任何星球的硬币付钱,但是绝不找零,当然也不能欠债。韩梅梅手边有 10^4枚来自各个星球的硬币,需要请你帮她盘算一下,是否可能精确凑出要付的款额。输入格式:输入第一行给出两个正整数:N(≤10^4)是硬币的总个数,M(≤100)是韩梅梅要付的款额。第二行给出 N 枚硬币的正整数面值。数字间以空格分隔。输出格式:在一行中输出硬币的面值 V1≤V2≤⋯≤Vk,满足条件 V原创 2021-05-07 13:25:18 · 732 阅读 · 0 评论 -
7-3 输油管道问题 (50 分)——PTA
7-3 输油管道问题 (50 分)某石油公司计划建造一条由东向西的主输油管道。该管道要穿过一个有n 口油井的油田。从每口油井都要有一条输油管道沿最短路经(或南或北)与主管道相连。如果给定n口油井的位置,即它们的x 坐标(东西向)和y 坐标(南北向),应如何确定主管道的最优位置,即使各油井到主管道之间的输油管道长度总和最小的位置? 证明可在线性时间内确定主管道的最优位置。给定n口油井的位置, 计算各油井到主管道之间的输油管道最小长度总和。输入格式:输入的第1 行是油井数n,1<=n<=10原创 2021-04-24 13:48:26 · 697 阅读 · 3 评论 -
7-2 找第k小的数——PTA——快速排序
7-2 找第k小的数设计一个平均时间为O(n)的算法,在n(1<=n<=1000)个无序的整数中找出第k小的数。提示:函数int partition(int a[],int left,int right)的功能是根据a[left]~a[right]进行划分,划分后的x所在位置的左段全小于等于x,右段全大于等于x,同时利用x所在的位置还可以计算出x是这批数据按升非降序排列的第几个数。因此可以编制int find(int a[],int left,int right,int k)函数,通过调用p原创 2021-04-24 11:50:47 · 1737 阅读 · 0 评论 -
7-1 求最大元素值——PTA
7-1 求最大元素值n个元素的数组的最大元素可以用递归计算出来。 定义方法:int max(int x, int y) 它返回x和y两个整数中的较大值。 试用递归编写方法:int arraymax(int[] a, int n) 它使用递归返回数组a的最大元素值。 终止条件:n==2 递归步骤:arraymax=max(max(a[0],…,a[n-2]), a[n-1])输入格式:第一行的第一个元素是输入元素个数n (1<n<=30),第二个元素之后是输入n个元素;输出格式:按格式要原创 2021-04-24 11:43:12 · 1692 阅读 · 0 评论