
算法设计与分析
Suzerk
这个作者很懒,什么都没留下…
展开
-
7-25 0-1背包 (50分)
7-25 0-1背包 (50分)给定n(n<=100)种物品和一个背包。物品i的重量是wi,价值为vi,背包的容量为C(C<=1000)。问:应如何选择装入背包中的物品,使得装入背包中物品的总价值最大? 在选择装入背包的物品时,对每种物品i只有两个选择:装入或不装入。不能将物品i装入多次,也不能只装入部分物品i。输入格式:共有n+1行输入: 第一行为n值和c值,表示n件物品和背包容量c; 接下来的n行,每行有两个数据,分别表示第i(1≤i≤n)件物品的重量和价值。输出格式:输出装入背包原创 2021-06-14 10:18:12 · 241 阅读 · 0 评论 -
7-6 小明走格子 (30分)
7-6 小明走格子 (30分)从A点到B点有n个格子,小明现在要从A点到B点,小明吃了些东西,补充了一下体力,他可以一步迈一个格子,也可以一步迈两个格子,也可以一步迈3个格子,也可以一步迈4个格子。请编写程序计算小明从A点到B点一共有多少种走法。grid2.jpg输入格式:输入包含多组数据,第一行为一个整数m,m不超过10000,表示输入数据组数。接下来m行,每行为一个整数n(保证对应的输出结果小于231 ),表示从A点到B点的格子数。输出格式:输出为m个整数,表示对于每组数据小明从A原创 2020-12-19 16:10:49 · 4352 阅读 · 1 评论 -
7-34 青蛙过桥 (50分)
7-34 青蛙过桥 (50分)一座长度为n的桥,起点的一端坐标为0,且在整数坐标i处有a[i]个石头【0<=a[i]<=4】, 一只青蛙从坐标0处开始起跳,一步可以跳的距离为1或2或3【即每一步都会落在整数点处】, 青蛙落在i处会踩着该点的所有石头,求青蛙跳出这座桥最少踩多少个石头?并且输出依次跳 过的坐标点路线,如果存在多种路线,输出字典序最小的那一条。输入格式:第一行整数n(<150000),接着下一行会有n+1个由空格隔开的整数,即桥上各个坐标处石头数量。输出格式:第一行为原创 2020-12-16 22:25:33 · 841 阅读 · 0 评论 -
5-2 工作分配问题 (30分)
设有n件工作分配给n个人。将工作i分配给第j个人所需的费用为cij 。 设计一个算法,对于给定的工作费用,为每一个人都分配1 件不同的工作,并使总费用达到最小。输入格式:输入数据的第一行有1 个正整数n (1≤n≤20)。接下来的n行,每行n个数,表示工作费用。输出格式:将计算出的最小总费用输出到屏幕。输入样例:在这里给出一组输入。例如:310 2 32 3 43 4 5输出样例:在这里给出相应的输出。例如:9#include<iostream>using name原创 2020-12-06 21:50:48 · 748 阅读 · 0 评论 -
5-1 0-1背包 (50分)
给定n(n<=100)种物品和一个背包。物品i的重量是wi,价值为vi,背包的容量为C(C<=1000)。问:应如何选择装入背包中的物品,使得装入背包中物品的总价值最大? 在选择装入背包的物品时,对每种物品i只有两个选择:装入或不装入。不能将物品i装入多次,也不能只装入部分物品i。输入格式:共有n+1行输入: 第一行为n值和c值,表示n件物品和背包容量c; 接下来的n行,每行有两个数据,分别表示第i(1≤i≤n)件物品的重量和价值。输出格式:输出装入背包中物品的最大总价值。输入样例:原创 2020-12-06 20:11:15 · 299 阅读 · 0 评论 -
7-1 汽车加油问题 (15分)
题目来源:王晓东《算法设计与分析》一辆汽车加满油后可行驶 n公里。旅途中有若干个加油站。设计一个有效算法,指出应 在哪些加油站停靠加油,使沿途加油次数最少。输入格式:第一行有 2 个正整数n和 k(k<=1000 ),表示汽车加满油后可行驶n公里,且旅途中有 k个加油站。 第二行有 k+1 个整数,表示第 k 个加油站与第k-1 个加油站之间的距离。 第 0 个加油站表示出发地,汽车已加满油。 第 k+1 个加油站表示目的地。输出格式:输出最少加油次数。如果无法到达目的地,则输出“No So原创 2020-11-08 21:56:18 · 1516 阅读 · 0 评论 -
7-1 单调递增最长子序列 (20分)
设计一个O(n2)时间的算法,找出由n个数组成的序列的最长单调递增子序列。输入格式:输入有两行: 第一行:n,代表要输入的数列的个数 第二行:n个数,数字之间用空格格开输出格式:最长单调递增子序列的长度输入样例:在这里给出一组输入。例如:51 3 5 2 9输出样例:在这里给出相应的输出。例如:4#include<iostream>using namespace std;int main(){ int i,j,n; cin>>n; int a原创 2020-11-01 16:37:48 · 1626 阅读 · 0 评论 -
7-3 两个有序序列的中位数 (20分)
7-3 两个有序序列的中位数 (20分)已知有两个等长的非降序序列S1, S2, 设计函数求S1与S2并集的中位数。有序序列A0,A1,⋯,AN−1的中位数指A(N−1)/2的值,即第⌊(N+1)/2⌋个(A0为第1个数)。输入格式:输入分三行。第一行给出序列的公共长度N(0<N≤100000),随后每行输入一个序列的信息,即N个非降序排列的整数。数字用空格间隔。输出格式:在一行中输出两个输入序列的并集序列的中位数。输入样例1:51 3 5 7 92 3 4 5 6输出样例1:4原创 2020-10-19 22:00:10 · 916 阅读 · 1 评论 -
7-20 二分法求函数的零点 (10分)
7-20 二分法求函数的零点 (10分)有函数:f(x)=x5 −15x4 +85x3 −225x2 +274x−121 已知f(1.5)>0,f(2.4)<0 且方程f(x)=0 在区间[1.5,2.4] 有且只有一个根,请用二分法求出该根。 提示:判断函数是否为0,使用表达式 fabs(f(x)) < 1e-7输入格式:无。输出格式:x该方程在区间[1.5,2.4]中的根。要求四舍五入到小数点后6位。。输入样例:无输出样例:无原创 2020-10-11 23:31:46 · 1340 阅读 · 0 评论 -
7-18 maximum number in a unimodal array (15分)
7-18 maximum number in a unimodal array (15分)You are a given a unimodal array of n distinct elements, meaning that its entries are in increasing order up until its maximum element, after which its elements are in decreasing order. Give an algorithm to com原创 2020-10-11 22:22:59 · 709 阅读 · 0 评论