算法设计
本科课程实验
杳杳_柒
为了理解递归,我们首先要理解的是递归
展开
-
【实验考试加油!】【活动安排】
1205.活动安排时限:1000ms内存限制:10000K 总时限:3000ms描述Jack是一名nwpu的大一新生,对学校举办的各种活动都十分的好奇,想尽可能多的参加这些活动。Npwu每天共有N项活动,其开始结束时间分别为B[i],E[i],(i = 1,2,……N)请问Jack一天最多能参加几项活动。当然,Jack在同一时间内只能参加一项活动,即jack参加的活动时...原创 2019-11-12 12:06:40 · 237 阅读 · 0 评论 -
【算法实验四】(DP-动态规划)【花生米5】
1086.花生米(五)时限:1000ms内存限制:10000K 总时限:3000ms描述五一长假第六天,Tom在QQ上遇到了Kitty。呵呵,Kitty,在离散数学课上认识的PPMM……等等!Tom恍然大悟:自己这一生除了看帖不回之外最大的错误就是离散数学没学好!五一长假第七天,Tom和Jerry在仓库散步的时候发现了一堆花生米(仓库,呵呵,仓库…)。这次Tom制定分花生米规则如...原创 2019-11-07 10:48:34 · 206 阅读 · 0 评论 -
【算法实验四】(DP-动态规划)【花生米4】
1085.花生米(四)时限:1000ms内存限制:10000K 总时限:3000ms描述五一长假第四天,Tom逛了N个bbs,做了N^2个脑筋急转弯题,终于发现了每次吃完花生米嘴里都是苦味的原因:自己总会吃到最后一粒花生米。五一长假第五天,Tom和Jerry在仓库散步的时候发现了n堆花生米(这是什么仓库啊?!)。这次Tom制定分花生米规则如下:???????1、首先选出最苦的一...原创 2019-11-07 10:48:31 · 228 阅读 · 0 评论 -
【算法实验四】(DP-动态规划)【花生米3】
1084.花生米(三)时限:1000ms内存限制:10000K 总时限:3000ms描述五一长假第三天,Tom和Jerry在仓库散步的时候又发现了一堆花生米(仓库,又见仓库……)。这次Tom制定分花生米规则如下:???????1、Tom和Jerry轮流从堆中取出k粒花生米吃掉;2、第一次取花生米的人只能取一粒,以后取花生米的数量不能超过前一个人取花生米数量的两倍;3、为显示规...原创 2019-11-06 18:56:51 · 254 阅读 · 0 评论 -
【算法实验四】(DP-动态规划)【花生米2】
1083.花生米(二)时限:1000ms内存限制:10000K 总时限:3000ms描述五一长假第二天,Tom和Jerry在仓库散步的时候又发现了一堆花生米(这个仓库还真奇怪)。这次Tom制定分花生米规则如下:1、Tom和Jerry轮流从堆中取出k粒花生米吃掉,k可以是1,5,10中的任意一个数字;2、为显示规则的公平性,Jerry可以选择...原创 2019-11-06 18:55:24 · 233 阅读 · 0 评论 -
【算法实验四】(DP-动态规划)【滑雪】
1209.滑雪时限:1000ms内存限制:10000K 总时限:3000ms描述Michael喜欢滑雪这并不奇怪,因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子1 2 3 4 516 17 1...原创 2019-11-06 18:54:11 · 241 阅读 · 0 评论 -
【算法实验四】(DP-动态规划)【装盘子】
1203.装盘子时限:1000ms内存限制:10000K 总时限:3000ms描述N人为了大快朵颐,行至云餐二楼,取了N个盘子,打了M个饺子。现欲将M个饺子装入N个盘子中,试问共有多少种不同的装法?假设盘子足够大,并且盘子里可以什么都不放。注意像2 5 0和5 0 2之类的属于同一种放法。输入两个整数M、N(1=< M,N <=100)以空格隔开。...原创 2019-11-06 18:52:20 · 299 阅读 · 0 评论 -
【算法实验四】(DP-动态规划)【旅游预算】
1149.旅游预算时限:1000ms内存限制:10000K 总时限:3000ms描述一个旅行社需要估算乘汽车从某城市到另一城市的最小费用,沿路有若干加油站,每个加油站收费不一定相同。旅游预算有如下规则: 若油箱的油过半,不停车加油,除非油箱中的油不可支持到下一站;每次加油时都加满;在一个加油站加油时,司机要花费2元买东西吃;司机不必为其他意外情况而准备额外的油;汽车开出时在起点加满...原创 2019-11-06 18:50:42 · 1340 阅读 · 0 评论 -
【算法实验四】(DP-动态规划)【石子合并】
1148.石子合并时限:1000ms内存限制:10000K 总时限:3000ms描述在一个圆形操场的四周摆放着n堆石子(n<= 100),现要将石子有次序地合并成一堆。规定每次只能选取相邻的两堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。编一程序,读入石子堆数n及每堆的石子数(<=20)。选择一种合并石子的方案,使得做n-1次合并,得分的总和最小; 比如有...原创 2019-11-06 18:49:33 · 496 阅读 · 0 评论 -
【算法实验四】(DP-动态规划)【计算矩阵连乘积】
1048.计算矩阵连乘积时限:1000ms内存限制:10000K 总时限:3000ms描述在科学计算中经常要计算矩阵的乘积。矩阵A和B可乘的条件是矩阵A的列数等于矩阵B的行数。若A是一个p×q的矩阵,B是一个q×r的矩阵,则其乘积C=AB是一个p×r的矩阵。计算C=AB总共需要p×q×r次乘法。现在的问题是,给定n个矩阵{A1,A2,…,An}。其中Ai与Ai+1是可乘的,i=1...原创 2019-11-06 18:47:53 · 338 阅读 · 0 评论 -
【算法实验四】(DP-动态规划)【田忌赛马】
1047.田忌赛马(tian ji racing)时限:1000ms内存限制:10000K 总时限:3000ms描述田忌与齐王赛马,双方各有n匹马参赛(n<=100),每场比赛赌注为1两黄金,现已知齐王与田忌的每匹马的速度,并且齐王肯定是按马的速度从快到慢出场,现要你写一个程序帮助田忌计算他最好的结果是赢多少两黄金(输用负数表示)。Tian Ji and the king ...原创 2019-11-06 18:45:43 · 743 阅读 · 0 评论 -
【算法实验四】(DP-动态规划)【防卫导弹】
1046.防卫导弹时限:1000ms内存限制:10000K 总时限:3000ms描述一种新型的防卫导弹可截击多个攻击导弹。它可以向前飞行,也可以用很快的速度向下飞行,可以毫无损伤地截击进攻导弹,但不可以向后或向上飞行。但有一个缺点,尽管它发射时可以达到任意高度,但它只能截击比它上次截击导弹时所处高度低或者高度相同的导弹。现对这种新型防卫导弹进行测试,在每一次测试中,发射一...原创 2019-11-06 18:44:16 · 447 阅读 · 0 评论 -
【算法实验四】(DP-动态规划)【最长公共子序列】
1041.最长公共子序列时限:1000ms内存限制:200000K 总时限:3000ms描述一个给定序列的子序列是在该序列中删去若干元素后得到的序列。确切地说,若给定序列X=<x1, x2,…, xm>,则另一序列Z=<z1, z2,…, zk>是X的子序列是指存在一个严格递增的下标序列 <i1, i2,…, ik>,使得对于所有j=1,2,…,...原创 2019-11-06 18:40:35 · 327 阅读 · 0 评论 -
【算法实验三】(BFS-分支限界)【八数码】
1571.八数码时限:5000ms内存限制:20000K 总时限:10000ms描述在九宫格里放在1到8共8个数字还有一个是空格,与空格相邻的数字可以移动到空格的位置,问给定的状态最少需要几步能到达目标状态(用0表示空格):1 2 34 5 67 8 0输入输入一个给定的状态。输出输出到达目标状态的最小步数。不能到达时输出-1。输入样例...原创 2019-11-05 23:29:28 · 1539 阅读 · 1 评论 -
【算法实验三】(BFS-分支限界)【木乃伊迷宫】
1147.木乃伊迷宫时限:1000ms内存限制:10000K 总时限:3000ms描述木乃伊地下宫殿是一个6行6列的迷宫。作为敢到木乃伊地下宫殿里去探险的你,有没有跟木乃伊抓迷藏的心理准备呵!游戏在木乃伊所在的迷宫里展开,任务就是尽快赶到出口。你一次只能走一步,而木乃伊可以走两步,但木乃伊是很笨的,他总是先尽量跟你达到同一列,如果已经是同一列了,他才会像你走来,有墙的地方人和木乃伊...原创 2019-11-05 23:24:48 · 588 阅读 · 0 评论 -
【算法实验三】【polygon】
1130.polygon时限:1000ms内存限制:10000K 总时限:3000ms描述在一个周长为10000的圆上等距分布着n个点,即这n个点是一个正n边形的顶点。现在要另加m个点到圆上,新加的m个点可以任意选择位置(可以与原有的点重合)。然后将这n+m个点中的一些点延圆周移动,最终使n+m个点均匀分布,即在一个正n+m边形的顶点上。输出最小总移动距离。输入...原创 2019-11-05 23:19:10 · 524 阅读 · 0 评论 -
【算法实验三】(BFS-分支限界)【推箱子】
1326.推箱子时限:1000ms内存限制:10000K 总时限:3000ms描述绝大多数人都玩过推箱子的游戏,控制一个人将箱子推动到目标位置即获得胜利。现请你编写一个程序,判断将箱子推到目标位置至少需要多少步。输入推箱子的平面区域为固定大小(10*10),使用10行10列输入推箱子的初始局面。其中,0代表空格,1代表墙,2代表箱子,3代表目标位置,4代表人。注:游...原创 2019-11-05 23:16:31 · 878 阅读 · 0 评论 -
【算法实验三】(BFS-分支限界)【特殊的二阶魔方】
1325.特殊的二阶魔方时限:1000ms内存限制:10000K 总时限:3000ms描述魔方大家应该都玩过。现在有一个特殊的二阶魔方,它只有一面是白色,其余五个面全是黑色。玩这个魔方当然也有特殊的规则,玩家只能通过六种方式去改变它,底层向左转一格(称为DL),底层向右转一格(称为DR),右侧向上转一格(称为RU),右侧向下转一格(称为RD),内侧顺时针转一格(称为C),内侧逆时针...原创 2019-11-05 23:13:45 · 407 阅读 · 0 评论 -
【算法实验三】(BFS-分支限界)【六数码问题】
1045.六数码问题时限:1000ms内存限制:10000K 总时限:3000ms描述现有一两行三列的表格如下:A B CD E F把1、2、3、4、5、6六个数字分别填入A、B、C、D、E、F格子中,每个格子一个数字且各不相同。每种不同的填法称为一种布局。如下:1 3 52 4 6布局12 5 64 3 1布局2定义α变换如下:把A格中的数字放入B格...原创 2019-11-05 23:11:23 · 329 阅读 · 0 评论 -
【算法实验三】(BFS-分支限界)【独轮车】
1044.独轮车时限:1000ms内存限制:10000K 总时限:3000ms描述独轮车的轮子上有红、黄、蓝、白、绿(依顺时针序)5种颜色,在一个如下图所示的20*20的迷宫内每走一个格子,轮子上的颜色变化一次。独轮车只能向前推或在原地转向。每走一格或原地转向90度均消耗一个单位时间。现给定一个起点(S)和一个终点(T),求独轮车以轮子上的指定颜色到达终点所需的最短时间。...原创 2019-11-05 20:04:47 · 390 阅读 · 0 评论 -
【算法实验三】(BFS-分支限界)【跳马】
1043.跳马时限:1000ms内存限制:10000K 总时限:3000ms描述在国际象棋中,马的走法与中车象棋类似,即俗话说的“马走日”,下图所示即国际象棋中马(K)在一步能到达的格子(其中黑色的格子是能到达的位置)。现有一200*200大小的国际象棋棋盘,棋盘中仅有一个马,给定马的当前位置(S)和目标位置(T),求出马最少需要多少跳才能从当前位置到达目标位置。输...原创 2019-11-05 20:00:27 · 381 阅读 · 0 评论 -
【算法实验三】(BFS-分支限界法)【电子老鼠闯迷宫】
1042.电子老鼠闯迷宫时限:1000ms内存限制:10000K 总时限:3000ms描述有一只电子老鼠被困在如下图所示的迷宫中。这是一个12*12单元的正方形迷宫,黑色部分表示建筑物,白色部分是路。电子老鼠可以在路上向上、下、左、右行走,每一步走一个格子。现给定一个起点S和一个终点T,求出电子老鼠最少要几步从起点走到终点。输入本题包含一个测例。在测例的第一行有四个由...原创 2019-11-04 22:26:00 · 412 阅读 · 0 评论 -
【算法实验三】(BFS-分支限界)【加1乘2平方】
1541.加1乘2平方时限:1000ms内存限制:10000K 总时限:3000ms描述最简单的队列的使用#include <iostream>#include <queue>using namespace std;queue<int> q1;int main(){int temp, x;q1.push(5);//入队q1.pu...原创 2019-11-04 21:59:52 · 252 阅读 · 0 评论 -
【算法实验二】(DFS-回溯)【三阶幻方】
1579.三阶幻方时限:1000ms内存限制:10000K 总时限:3000ms描述三阶幻方是最简单的幻方,又叫九宫格,是由1,2,3,4,5,6,7,8,9九个数字组成的一个三行三列的矩阵,其对角线、横行、纵向的的和都为15。输入无输出按字典序输出所有的满足条件的幻方矩阵,每两个数字之间带一个空格,行尾无空格,每个幻方后带一个空行。输入样例...原创 2019-11-03 10:58:01 · 626 阅读 · 0 评论 -
【算法实验二】(DFS-回溯)【图的m着色问题】
1575.图的m着色问题时限:1000ms内存限制:10000K 总时限:3000ms描述给定无向连通图G和m种不同的颜色。用这些颜色为图G的各顶点着色,每个顶点着一种颜色。如果有一种着色法使G中每条边的2个顶点着不同颜色,则称这个图是m可着色的。图的m着色问题是对于给定图G和m种颜色,找出所有不同的着色法。输入第1行有3个正整数n,r和m(n < 20,r ...原创 2019-11-03 10:56:39 · 424 阅读 · 0 评论 -
【算法实验二】(DFS_回溯)【求图像的周长】
1145.求图像的周长时限:1000ms内存限制:10000K 总时限:3000ms描述给一个用 . 和X表示的图形,图形在上、下、左、右、左上、左下、右上、右下8个方向都被看作是连通的,并且图像中间不会出现空洞,求这个图形的边长。输入首先给出m、n、x、y四个正整数,下面给出m×n的图形,x、y表示点击的位置,全0表示结束。输出点击的图形的周长。...原创 2019-11-03 10:55:11 · 225 阅读 · 0 评论 -
【算法实验二】(DFS-回溯)【农场灌溉问题】
1144.农场灌溉问题时限:1000ms内存限制:10000K 总时限:3000ms描述一农场由图所示的十一种小方块组成,蓝色线条为灌溉渠。若相邻两块的灌溉渠相连则只需一口水井灌溉。输入给出若干由字母表示的最大不超过50×50具体由(m,n)表示,的农场图输出编程求出最小需要打的井数。每个测例的输出占一行。当M=N=-1时结束程序。输入样例...原创 2019-11-03 10:53:17 · 675 阅读 · 0 评论 -
【算法实验二】(DFS-回溯)【字母转换】
1143.字母转换时限:1000ms内存限制:10000K 总时限:3000ms描述通过栈交换字母顺序。给定两个字符串,要求所有的进栈和出栈序列(i表示进栈,o表示出栈),使得字符串2在求得的进出栈序列的操作下,变成字符串1。输出结果需满足字典序。例如TROT 到 TORT:[i i i i o o o oi o i i o o i o]输入给定两个...原创 2019-11-03 10:50:53 · 374 阅读 · 0 评论 -
【算法实验二】(DFS-回溯)【踩气球】
1142.踩气球时限:1000ms内存限制:10000K 总时限:3000ms描述六一儿童节,小朋友们做踩气球游戏,气球的编号是1~100,两位小朋友各踩了一些气球,要求他们报出自己所踩气球的编号的乘积。现在需要你编一个程序来判断他们的胜负,判断的规则是这样的:如果两人都说了真话,数字大的人赢;如果两人都说了假话,数字大的人赢;如果报小数字的人说的是真话而报大数字的人说谎,则报小数...原创 2019-11-03 10:49:14 · 273 阅读 · 0 评论 -
【算法实验二】(DFS-回溯)【迷宫问题】
1009.迷宫问题时限:1000ms内存限制:10000K 总时限:3000ms描述给一个20×20的迷宫、起点坐标和终点坐标,问从起点是否能到达终点。输入多个测例。输入的第一行是一个整数n,表示测例的个数。接下来是n个测例,每个测例占21行,第一行四个整数x1,y1,x2,y2是起止点的位置(坐标从零开始),(x1,y1)是起点,(x2,y2)是终点。下面20行每行...原创 2019-11-03 10:47:49 · 373 阅读 · 0 评论 -
【算法实验二】(DFS-回溯)【素数环问题】
1008.素数环问题时限:1000ms内存限制:10000K 总时限:3000ms描述把1到20这重新排列,使得排列后的序列A满足:a. 任意相邻两个数之和是素数b. 不存在满足条件a的序列B使得:A和B的前k(0 <= k <= 19)项相同且B的第k+1项比A的第k+1项小。(即按字典序排列的第一项)输入没有输入。输出输出A,两个数字...原创 2019-11-03 10:44:54 · 349 阅读 · 1 评论 -
【算法实验二】(DFS-回溯)【8皇后问题】
1007.8皇后问题时限:1000ms内存限制:10000K 总时限:3000ms描述输出8皇后问题所有结果。输入没有输入。输出每个结果第一行是No n:的形式,n表示输出的是第几个结果;下面8行,每行8个字符,‘A’表示皇后,‘.’表示空格。不同的结果中,先输出第一个皇后位置靠前的结果;第一个皇后位置相同,先输出第二个皇后位置靠前的结果;依次类推。...原创 2019-11-03 10:08:24 · 362 阅读 · 0 评论 -
【算法实验二】(DFS-回溯)【堡垒问题】
1006.堡垒问题时限:1000ms内存限制:10000K 总时限:3000ms描述城堡是一个4×4的方格,为了保卫城堡,现需要在某些格子里修建一些堡垒。城堡中的某些格子是墙,其余格子都是空格,堡垒只能建在空格里,每个堡垒都可以向上下左右四个方向射击,如果两个堡垒在同一行或同一列,且中间没有墙相隔,则两个堡垒都会把对方打掉。问对于给定的一种状态,最多能够修建几个堡垒。输入...原创 2019-11-03 09:48:53 · 246 阅读 · 0 评论 -
【算法实验二】(DFS-回溯)【装载问题】
1005.装载问题时限:1000ms内存限制:10000K 总时限:3000ms描述有两艘船,载重量分别是c1、 c2,n个集装箱,重量是wi (i=1…n),且所有集装箱的总重量不超过c1+c2。确定是否有可能将所有集装箱全部装入两艘船。输入多个测例,每个测例的输入占两行。第一行一次是c1、c2和n(n<=10);第二行n个整数表示wi (i=1…n)。n等于...原创 2019-11-02 21:50:42 · 493 阅读 · 0 评论 -
【算法实验二】(DFS-回溯)【背包问题】
1004.0-1背包问题时限:1000ms内存限制:10000K 总时限:3000ms描述需对容量为c 的背包进行装载。从n 个物品中选取装入背包的物品,每件物品i 的重量为wi ,价值为pi 。对于可行的背包装载,背包中物品的总重量不能超过背包的容量,最佳装载是指所装入的物品价值最高。输入多个测例,每个测例的输入占三行。第一行两个整数:n(n<=10)和c,第...原创 2019-11-02 21:48:31 · 282 阅读 · 0 评论 -
【算法实验一】(分治递归)【求第k小数】
1574.求第k小数时限:1000ms内存限制:10000K 总时限:3000ms描述求第k小数输入先输入一个小于10000的正整数n,再输入n个整数,最后输入一个小于等于n的正整数k,输出输出其中第k小的数。输入样例529834512849210002输出样例98#include <cstdio>...原创 2019-11-02 21:44:01 · 784 阅读 · 0 评论 -
【算法实验一】(分治递归)【循环赛日程表】
1243.循环赛日程表时限:1000ms内存限制:10000K 总时限:3000ms描述用分治算法生成循环赛日程表(1到2的n次方个人)输入一个小于等于7的正整数n输出循环赛日程表(1到2的n次方个人)输入样例3输出样例1 2 3 4 5 6 7 82 1 4 3 6 5 8 73 4 1 2 7 8 5 64 3 2 ...原创 2019-11-02 21:42:40 · 609 阅读 · 0 评论 -
【算法实验一】(DFS-回溯)【穷举所有排列】
1324.穷举所有排列时限:100ms内存限制:10000K 总时限:300ms描述输入一个小于10的正整数n,按把每个元素都交换到最前面一次的方法,输出前n个小写字母的所有排列。输入输入一个小于10的正整数n。输出按把每个元素都交换到最前面一次的方法,输出前n个小写字母的所有排列。输入样例3输出样例abcacbbacb...原创 2019-11-02 21:40:53 · 244 阅读 · 0 评论 -
【算法实验一】(DFS-回溯)【穷举n位二进制数】
1323.穷举n位二进制数时限:100ms内存限制:10000K 总时限:300ms描述输入一个小于20的正整数n,要求按从小到大的顺序输出所有的n位二进制数,每个数占一行。输入输入一个小于20的正整数n。输出按从小到大的顺序输出所有的n位二进制数,每个数占一行。输入样例3输出样例000001010011100101...原创 2019-11-02 21:38:30 · 174 阅读 · 0 评论 -
【算法实验一】(DFS-回溯)【走迷宫】
1141.走迷宫时限:1000ms内存限制:10000K 总时限:3000ms描述判断是否能从迷宫的入口到达出口输入先输入两个不超过20的正整数表示迷宫的行数m和列数n,再输入口和出口的坐标,最后分m行输入迷宫,其中1表示墙,0表示空格每个数字之间都有空格。输出只能向上、下、左、右四个方向走若能到达,则输出"Yes",否则输出"No",结果占...原创 2019-11-02 21:33:35 · 294 阅读 · 0 评论