自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 收藏
  • 关注

原创 问题 E: 数据结构基础16-最少步数

现在他请你帮忙,给你A、B两点的坐标,想知道两个位置到(1,1)点可能的最少步数。这个题讲真的自己没做出来,看了一下csdn上有人写过这道题,学了一下它的代码,我没想到这种广度搜索的方式居然不会超时,我感觉这样的操作其实是有点慢的,多了很多不必要的 ,能进行很多优化我感觉,比如有些离原点越来越远的那些是不是根本就不用进入循环,毕竟每次有一个进入循环就得循环12次,一开始我也没想到居然是这种最老套的方法是最实用的,大家自己看看吧,有更好的优化算法欢迎指正和批评。所有坐标值不超过100。

2024-08-13 15:34:25 157

原创 问题 D: 数据结构基础15-魔法师和扑克游戏

我稍微给大家来点注释吧,这样的写法确实能比你单独的用链表啥的 做代码复杂度降低了很多的,主要是for循环那块,这样写主要出发点就是从末尾元素开始,假设你的所有元素已经出队完成,从最后一个出队的元素开始,在慢慢的向前推进,q.size()是指你在出这个元素之前的队里有多少元素,那么你就需要移动队里的元素多少次,因为你移动的次数由当前数的大小来决定,那么当x循环到1的时候你是不需要在循环一次,所以前面加了代码当x=1时直接跳出循环,由于他是逆序进入的,所以最后输出的时候也应该逆序输出。

2024-08-13 10:04:21 236

原创 问题 C: 数据结构基础14-关系网络

把 x 加入队列并设置为队头元素,设 q[x][1]=0,从队头开始进行宽搜,穷举邻接矩阵的第 x 行,看 x 认识谁(判断 a[x][j]=1),认识的人(j)全部依次入队,并且 q[j][1]++。有 n 个人,他们的编号为 1~n,其中有一些人相互认识,现在 x 想要认识 y,可以通过他所认识的人来认识更多的人(如果 a 认识 b,b 认识 c,那么 a 可以通过 b 来认识 c),求出 x 最少需要通过多少人才能认识 y。保证 i=j 时,a[i][j]=0,并且 a[i][j]=a[j][i]。

2024-08-12 14:48:49 417

原创 问题 B: 数据结构基础13-最大黑区域

这个题目,我觉得最关键的是你不用去考虑,当你把已经用掉过的1变成0时会不会导致最后的结果改变,实际上是不会的,因为你每一个最大的黑区域都是包含了这一片的1,也就是说你不管从哪个1 开始,其实都不会改变这一片黑区域的最大值,因此来说这个跟队列里的a题是有类似之处的,或者说两道题目很像,只是这道题目花的时间和空间复杂度可能会多一点。请设计一个程序完成二值图像的这个操作,黑区域由黑像素组成,一个黑区域中的每像素至少与该区域中的另一个像素相邻,规定一个像素仅与其上下左右的像素相邻。

2024-08-12 10:49:50 882

原创 问题 A: 数据结构基础12-瓷砖

这个题目看着是一个队列题目,但是做起来的时候我用的确是递归的思想,奇了怪了,也不知道为什么要把这个题目放在队列的里面,难道是单纯用了数组的思想吗,我也不是很清楚,定义数组a和b的时候一定要看清是定义的是字符型数组还是数值数组。小谢同学站在某一块黑色的瓷砖上,他可以从此处出发,移动到上,下,左,右四个相邻的且是黑色的瓷砖上。现在他想知道,通过重复上述移动所能经过的黑色瓷砖数。以下为一个w行h列的二维字符矩阵,每个字符为“.”"#","@",分别表示该位置为黑色的瓷砖,红色的瓷砖,以及小谢的初始位置。

2024-08-12 10:23:59 544

原创 问题 K: 数据结构基础11-图的深度优先遍历

图的深度优先遍历指,先任意找一个顶点入栈,即为栈顶元素,然后找到跟栈顶元素相连的一个顶点入栈,接着继续把跟栈顶元素相连的一个顶点入栈,若栈顶元素没有相连的顶点或者相连的顶点都已经入过栈,那么栈顶元素就出栈,循环直到栈为空。那么元素的入栈顺序就是图的深度优先遍历。接下来的n行是一个n*n的邻接矩阵,a[i][j]=1表示顶点i和顶点j之间有直接边相连,a[i][j]=0表示没有直接边相连,保证i=k时a[i][j]=0,且a[i,j]=a[j,i].读入一个邻接矩阵存储的无向图,输出它的深度优先遍历序列。

2024-08-09 13:57:19 875

原创 问题 J: 数据结构基础10-洗盘子

开始时,所有盘子按顺序排列在栈中,1号盘子在顶端,N号盘子在底端。然后,小苏擦干小明已经洗好的部分或全部的盘子,放在擦干的盘子栈里。然后,小明再洗一些盘子,小苏再擦干一些她已经洗好的盘子,直到所有盘子洗完擦干。比如,有1,2,3,4,5号盘子,先洗3个,然后擦2个,再洗2个,再擦3个。哎,一开始我觉得这个题目很简单,但是运行的时候发现他不输出,后来仔细看了一下才看到我第二个循环里面没有给出条件,而且这个题目有一个难点,就是需要你自己跳出while循环,没有给特定条件,总的来说是一道比较简单的练习题。

2024-08-09 09:39:31 401

原创 问题 G: 数据结构基础7-程序员输入问题

输入一个中缀表达式(由0-9组成的运算数、加+减-乘*除/四种运算符、左右小括号组成。注意“-”也可作为负数的标志,表达式以“@”作为结束符),判断表达式是否合法,如果不合法,请输出“NO”;否则请把表达式转换成后缀形式,再求出后缀表达式的值并输出。注意:必须用栈操作,不能直接输出表达式的值。如果再考虑是实数运算呢?这个题目总的来说没什么难度,基本写一遍就能ac,所以就这样吧。如果表达式不合法,请输出“NO”,要求大写。输入文件的第一行为一个以@结束的字符串。如果表达式合法,请输出计算结果。

2024-08-08 11:22:55 396

原创 问题 C: 数据结构基础3-字符串匹配问题

字符串中只含有括号 (),[],<>,{},判断输入的字符串中括号是否匹配。如果括号有互相包含的形式,从内到外必须是<>,(),[],{},例如。输入: [()] 输出:YES,而输入([]), ({})都应该输出NO。这个题目一开始我有三个测试点没有通过,后来检查了一下发现是因为我宏定义了我的栈,导致如果我的栈如果前面有数据就会影响后面的输出结果,实际上这个栈应该定义在for循环里面的,这样就ac了,下面是我的代码。接下来的n行,每行都是一个由括号组成的长度不超过255的字符串。

2024-08-08 09:34:19 431

原创 问题 B: 数据结构基础2-括弧匹配检验

假设表达式中允许包含两种括号:圆括号和方括号,其嵌套的顺序随意,如([ ]())或[([ ][ ])]等为正确的匹配,[( ])或([ ]( )或 ( ( ) ) )均为错误的匹配。输入一个只包含圆括号和方括号的字符串,判断字符串中的括号是否匹配,匹配就输出 “OK” ,不匹配就输出“Wrong”。现在的问题是,要求检验一个给定表达式中的括弧是否正确匹配?匹配就输出 “OK” ,不匹配就输出“Wrong”。这个题目好像就比上面一个题目多了一个括号的处理,hh。输入一个字符串:[([][])],输出:OK。

2024-08-07 14:33:39 398

原创 问题 A: 数据结构基础1-表达式括号匹配

假设一个表达式有英文字母(小写)、运算符(+,—,*,/)和左右小(圆)括号构成,以“@”作为表达式的结束符。请编写一个程序检查表达式中的左右圆括号是否匹配,若匹配,则返回“YES”;表达式长度小于255,左圆括号少于20个。这道题目其实也没有太大的难度,所以大家就当乐子看看吧,但是我还是为了做出这道题寻求了一下gpt的帮助,中间有个问题我觉得没问题,但是结果。表达式长度小于255,左圆括号少于20个。一行:“YES” 或“NO”

2024-08-07 13:53:41 372

原创 问题 E: 数据结构基础5-车厢调度

但是一旦进入车站C,它就不能再回到A方向的铁轨上了,并且一旦当它进入B方向的铁轨,它就不能再回到车站C。这个题目也略微的比较简单,是判断这个栈能否实现的一种题目,也算是一种基础题目,对于新手来说这样的题目非常的合适,不过我第一次做这个题目也是困住了for和while中两个循环的使用选择,后来再斟酌后觉得while更加合适一些。,an的顺序从B方向驶出,请来判断能否得到指定的车厢顺序。输入文件的第一行为一个整数n,其中n<=1000,表示有n节车厢,第二行为n个数字,表示指定的车厢顺序。

2024-08-07 09:38:55 460

原创 问题 I: 数据结构基础9-火车编组

如果一列火车有4节车厢,经过编组后,车厢的编组顺序为3,2,4,1;小明到编组站参观后发现编组站的铁路有很多岔道,火车在岔道上来来回回地开动,最后列车编组就完成了。小明想到学习过的栈操作,发现火车编组的过程就是由若干进栈,出栈操作构成的。中间有一行代码trains.empty()前往不能忘记,不能只看他有没有达到出栈的要求,还有一种需要考虑到的情况就是目前栈中的元素已经出完了为空,因此就需要判断这个栈是不是空的。第2行n个小于或等于n的正整数,表示有n节车厢,编号为1,2,3,……

2024-08-06 15:49:57 344

原创 问题 D: 数据结构基础4-计算

小明在你的帮助下,破密了Ferrari设的密码门,正要往前走,突然又出现了一个密码门,门上有一个算式,其中只有“(”,“)”,“0-9”,“+”,“-”,“*”,“/”,“^”求出的值就是密码。小明数学学得不好,还需你帮他的忙。(“/”用整数除法)100%的数据满足:算式长度<=30 其中所有数据在231-1的范围内。输入文件calc.in共1行,为一个算式。输出文件calc.out共1行,就是密码。

2024-08-06 14:24:05 456

原创 问题 H: 登记成绩

题目描述叶老师想要用链表登记成绩。对于每张试卷有两个信息:学号和成绩。对于登记成绩,要求学号小的成绩登记在学号大的成绩之前。叶老师有两种操作:1 a b:向链表中加入学号为a成绩为b的同学的成绩,题目保证不同的卷子不会有相同的学号。2 k : 查询当前链表中第k个同学的成绩是多少,题目保证k小于等于当前链表的长度。请用链表做这道题!输入第一行输入一个整数Q,表示操作的个数。接下来输入Q行,每一行是(1 a b)或者(2 k)格式,分别表示第一种和第二种操作。输出。

2024-08-05 14:29:42 839

原创 问题 G: 查询成绩(要求用链表完成)

这个题目其实和上面一个链表题目没有太大的差别,所以就是主函数上面有一些变化,但是strcpy还是要注意,如果要过测试就用strcpy,但是如果要在vs上编译就用strcpy_s,其他的看情况。输入一些学生的信息,每个学生信息一行,分别为学号、姓名和成绩,中间用空格隔开,其中学号和成绩均为整数,姓名为不超过15个仅包含大小写字母的字符。输入同学成成绩后,现在再输入1个同学的姓名,输出该同学的成绩。如果班上有重名,则只需输出按输入顺序的第一个该名字同学的成绩。在成绩结束后,输入一行,为一个同学的姓名。

2024-08-02 10:22:56 733

原创 问题 F: 学生信息库的建立(用链表完成)

ac代码如下,由于我用的是vs编译器,那么我建议在调试的时候把strcpy函数改成strcpy_s函数,不然应该是会报错的,下面自定义函数的else里面的代码也可以不用末尾插入的方式,可以自己定义一个新的节点,遍历到后面一个为空时再选择插入。输入一些学生的信息,每个学生信息一行,分别为学号、姓名和成绩,中间用空格隔开,其中学号和成绩均为整数,姓名为不超过15个仅包含大小写字母的字符。按照输入的顺序建立链表,并输出所有高于平均分同学的学号和分数,每行2个整数,中间用空格隔开。完成函数内链表的创建工作。

2024-08-02 09:39:59 879

原创 问题 E: 单向链表的建立

输入一些整数,均为大于0的数,直到输入一个负数为止。要求把所有的正整数,建立一个单向链表。

2024-08-01 14:01:21 355

原创 问题 I: 深入浅出学算法064-完全背包

设有n种物品,每种物品有一个重量及一个价值。但每种物品的数量是无限的,同时有一个背包,最大载重量为M,今从n种物品中选取若干件(同一种物品可以多次选取),使其重量的和小于等于M,而价值的和为最大。第一行:两个整数,M(背包容量,M<=200)和N(物品数量,N<=30);第2..N+1行:每行二个整数Wi,Ci,表示每个物品的重量和价值。仅一行,一个数,表示最大总价值。

2024-07-31 14:16:35 314

原创 问题 H: 旅行者的背包

一个旅行者有一个最多能用m公斤的背包,现在有n件物品,它们的重量分别是W1,W2,...,Wn,它们的价值分别为C1,C2,...,Cn.若每种物品只有一件求旅行者能获得最大总价值。其实之前我写过一次背包问题,但是我发现代码有一行多余了,我这次再重写的时候发现了这个问题,其实在全局变量中初始化数组,它里面的值默认是0。: 如果你在函数内部定义一个局部数组,并且没有显式初始化它,那么数组的元素将会有未定义的值(即垃圾值)。在C++中,定义一个数组时,数组元素的初始值取决于数组的定义方式。

2024-07-31 09:46:34 946

原创 问题 G: 深入浅出学算法062-机器分配

总公司拥有高效设备M台,准备分给下属的N个分公司。分配原则:每个公司有权获得任意数目的设备,但总台数不超过设备数M。感觉这道题目像是背包问题的二元版本,里面用了三重循环,说实话我是有点懵逼的,我感觉我应该要多刷一些动态规划的题目,自己做起来真的很多时候都还是云里雾里的。输入数据文件格式为:第一行有两个数,第一个数是分公司数N,第二个数是设备台数M。然后n行每行2个数 第一个数是公司序号 第2个数是该公司分配到的机器数。接下来是一个N*M的矩阵,表明了第 I个公司分配 J台机器的盈利。

2024-07-30 14:34:42 715

原创 问题 F: 深入浅出学算法061-合唱队形

哎,这个题目相对于之前的单体动态规划,唯一的变化就是他是从两头开始动态规划,题目条件有些改变,其他的没有什么区别,做的时候我一开始可能没有想到可以双头动态规划了,给题目想复杂了,实际上还是需要自己多思考一下。第二行有n个整数,用空格分隔,第i个整数Ti(130 ≤ Ti ≤ 230)是第i位同学的身高(厘米)。你的任务是,已知所有N位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排成合唱队形。N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。

2024-07-30 09:43:45 710

原创 问题 E: 深入浅出学算法060-友好城市

有一条横贯东西的大河,河有笔直的南北两岸,岸上各有位置各不相同的N个城市。//从当前数开始如果有比我大的,那么能容量的就多1,并且记录max1为当前最大容量。//这里开始处理b数组里的数据,第一个放a数组中的后值,第二个放目前到该数的能容量的最大线路数。第2行到第n+1行,每行两个整数,中间用一个空格隔开,分别表示南岸和北岸的一对友好城市的坐标。我把作者写的看了一下,我改了一下加工了一下,我把多余不要的东西删掉了,其他的思路上面时一致的。仅一行,输出一个整数,表示政府所能批准的最多申请数。

2024-07-29 10:55:21 810

原创 问题 C: 深入浅出学算法058-最短路径

我认为解决这个题的思路还是比较清楚的,只要一步一步来,a数组放的是初始数据,b数组放的是改变后的数据,c数组放的是数组中的数据有没有被使用过的,d数组放的是来到这个数据的前一行,e数存的是输出的数据,具体看我的代码。下图表示城市之间的交通路网,线段上的数字表示费用,单向通行由A->E。然后是n行n列数据,第i行n个数据表示城市i到各个城市之间的距离,如果没有路径到达该城市,则数据为0。输出1号点到n号点的最短路径值及经过的城市,格式见样例。输入整数n表示有n个城市。

2024-07-28 20:39:03 663

原创 问题 D: 深入浅出学算法059-挖地雷

在一个地图上有N个地窖(N<=200),每个地窖中埋有一定数量的地雷。同时,给出地窖之间的连接路径,并规定路径都是单向的,也不存在可以从一个地窖出发经过若干地窖后又回到原来地窖的路径。设计一个挖地雷的方案,使他能挖到最多的地雷。//巧妙之处在于c[t]=-1这句话,他是让满足条件的此数输出,而不是去让c[t]得到的值再去等于-1。//这里存放的是当前达到最大地雷数的前一个位置,方便动态规划。//这里存放的是修改后能达到最大的地雷。//这里存放的是不修改的地雷。编号大的地窖没有到编号小的地窖的路径。

2024-07-17 16:15:05 428

原创 问题 A: 深入浅出学算法056-数塔问题

这道题如果用枚举法,在数塔层数稍大的情况下(如40),则需要列举出的路径条数将是一个非常庞大的数目。所以实际求解时,可从底层开始,层层递进,最后得到最大值。关键在于我们要掌握这种思想,这样我们无论在用动态规划法解最优化问题,或是在用递推法解判定型、计数问题时,都能得心应手、游刃有余了。因此,我们在遇到这两类问题时,不妨多联系、多发展,举一反三,从比较中更深入地理解动态规划的思想。有形如图所示的数塔,从顶部出发,在每一结点可以选择向左走或是向右走,一起走到底层,要求找出一条路径,使路径上的值最大。

2024-07-16 10:17:19 297

原创 问题 U: 0/1背包

其实我们需要做的就是将这一个大问题拆分成很多小问题,f[i][j]表示的是取前i件物品用j容量能放的最大价值,那么每一次计算这个的时候就是通过考虑加这件物品,第一他是否能添加,如果能添加成功就需要比较不添加这件物品不占用这些重量来的价值大还是加了这件物品加上去掉这些重量的物品的价值。关于背包我也有一些自己想说的,背包问题的核心其实就是表达式,只要把表达式写出来程序的编译成功也就不是什么问题,所以我们一起来解读一下max(f[i-1[[j],f[i-1][j-w[i]+v[i])

2024-07-16 09:59:54 512

原创 问题 D: 深入浅出学算法046-合并果子

题目描述 在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。 每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n-1次合并之后,就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。 因为还要花大力气把这些果子搬回家,所以多多在合并果子时要尽可能地节省体力。假定每个果子重量都为1,并且已知果子的种类数和每种果子的数目,你的任务

2024-07-15 15:45:41 421

原创 问题 M: 深入浅出学算法055-整数区间

首行包括区间的数目n,1<=n<=10000,接下来的n行,每行包括两个整数a,b,被一空格隔开,0<=a<=b<=10000,它们是某一个区间的开始值和结束值。2.找到一个含元素个数最少的集合,使得对于每一个区间,都至少有一个整数属于该集合,输出该集合的元素个数。第一行集合元素的个数,对于每一个区间都至少有一个整数属于该区间,且集合所包含元素数目最少。//我选择每次对下一个数组进行判断,首先判断自己的头数和元素的关系。//1/如果头数>前数,直接添加一个当前的后数。

2024-07-15 15:03:29 495

原创 问题 L: 深入浅出学算法054-活动选择

学校在最近几天有n个活动,这些活动都需要使用学校的大礼堂,在同一时间,礼堂只能被一个活动使。由于有些活动时间上有冲突,学校办公室人员只好让一些活动放弃使用礼堂而使用其他教室。现在给出n个活动使用礼堂的起始时间begini和结束时间endi(begini < endi),请你帮助办公室人员安排一些活动来使用礼堂,要求安排的活动尽量多。接下来的n行,每行两个整数,第一个begini,第二个是endi(begini < endi <=32767)for (int i = 0;

2024-07-15 14:11:12 637

原创 问题 J: 深入浅出学算法052-删数问题

写答案之前,我觉得这个题目出的题意不够明确,比如如果我的数是109876,删掉四个数,按理来说答案应该是16,题目的意思是忽略0这个数,最后变成06,然后输出一个6,导致我一直过不了这个题目的测试点,所以我觉得题目里面应该需要注明一下,不考虑0的这种情况,下面给出我的贪心算法。输入一个高精度的正整数N,去掉其中任意S个数字后剩下的数字按原左右次序组成一个新的正整数。编程对给定的N和S,寻找一种方案使得剩下的数字组成的新数最小。//如果已经确定第一个不为0,那么不需要再判断是否有0会影响输出了。

2024-07-15 10:58:03 371

原创 问题 I: 深入浅出学算法051-均分纸牌

移牌规则为:在编号为 1 堆上取的纸牌,只能移到编号为 2 的堆上;在编号为 N 的堆上取的纸牌,只能移到编号为 N-1 的堆上;从 ③ 取4张牌放到④(9 8 13 10)->从③取3张牌放到 ②(9 11 10 10)-> 从②取1张牌放到①(10 10 10 10)。有 N 堆纸牌,编号分别为 1,2,…An (N 堆纸牌,每堆纸牌初始数,l<= Ai <=10000)例如 N=4,4 堆纸牌数分别为: ① 9 ② 8 ③ 17 ④ 6。N(N 堆纸牌,1 <= N <= 100)

2024-07-13 22:46:11 413 1

原创 问题 H: 深入浅出学算法050-营养膳食

比如就一顿饭来说,肉类不宜吃超过1份,鱼类不宜吃超过1份,蛋类不宜吃超过1份,蔬菜类不宜吃超过2份。Mr.L想要在营养膳食的情况下吃到更多的脂肪,当然Mr.L的食量也是有限的。表示Mr.L每顿饭最多可以吃m份食品,同时有n种食品供Mr.L选择,而这n种食品分为k类。接下来n行每行包括2个正整数,分别表示该食品的脂肪指数ai和所属的类别bi,其中ai≤100,bi≤k。//统计,如果还有最大的位置可以放就继续放,一旦等于0意味着目前的最大数无法被添加,于是自动跳转到下一位。Mr.L正在完成自己的增肥计划。

2024-07-13 21:10:04 515

原创 问题 G: 深入浅出学算法049-运输

现在已知N件商品,和搬运它们其中每一件的费用。现在搬家公司老板Mr.sb决定让我们每次任意选取2件商品。然后这2件商品只算一件商品的费用。但是这个商品的搬运费用是将选出的2个商品的费用之和除以k的。直到只收一件商品的钱。这个就是商店要付的费用。掌柜的想尽可能的少付钱,以便将更多的钱捐给希望工程。所以请你帮他计算一下最少只用付多少钱。n,k w1,w2.....wn(每一件物品搬运费)n,k,wi 均为非负数。一个数 最少付多少钱。

2024-07-13 20:41:09 227

原创 问题 E: 深入浅出学算法047-美元汇率

5400300500300250样例输出 Copy266.67提示Day 1 ... changing 100.0000 美元= 400.0000 马克 Day 2 ... changing 400.0000 马克= 133.3333 美元 Day 3 ... changing 133.3333 美元= 666.6666 马克 Day 5 ... changing 666.6666 马克= 266.6666 美元#include<iostream>#include<iom

2024-07-11 11:19:08 477

原创 问题 A: 深入浅出学算法043-排队打水

有N个人排队到1个水龙头去打水,他们装满水桶的时间为T1,T2,…,Tn为整数,应如何安排他们的打水顺序才能使他们花费的时间最少?输出文件有两行,第一行为一种排队顺序,即1到n的一种排列;第二行为这种排列方案下的平均等待时间(输出结果精确到小数点后两位)。如果有多种排队方式使得平均等待时间一样小,选择字典序最小的排队方式。输入分2行,第一个数为N表示打水人数。ti<=1e6,不保证ti不重复。第二行有N个数,为每人的打水时间。

2024-07-10 14:01:08 497 1

原创 问题 C: 深入浅出学算法045-纪念品分组

为使得参加晚会的同学所获得 的纪念品价值相对均衡,他要把购来的纪念品根据价格进行分组,但每组最多只能包括两件纪念品, 并且每组纪念品的价格之和不能超过一个给定的整数。为了保证在尽量短的时间内发完所有纪念品,乐乐希望分组的数目最少。你的任务是写一个程序,找出所有分组方案中分组数最少的一种,输出最少的分组数目。第3至n+2行每行包含一个正整数Pi(5≤Pi≤w)表示所对应纪念品的价格。100%的数据满足:1≤n≤30000,80≤w≤200。第2行为一个整数n,表示购来的纪念品的总件数G。

2024-07-08 14:07:09 389

原创 问题 B: 深入浅出学算法044-最大整数

例如:n=3时,3个整数13,312,343联接成的最大整数为:34331213。又如:n=4时,4个整数7,13,4,246联接成的最大整数为:7424613。设有n个正整数(n≤20),将它们联接成一排,组成一个最大的多位整数。

2024-07-08 12:58:27 330

原创 问题 G: 深入浅出学算法015-士兵站队

在一个划分成网格的操场上, n个士兵散乱地站在网格点上。士兵们可以沿网格边上、下左右移动一步,但在同时刻任一网格点上只能有1名士兵。按照军官的命令,士兵们要整齐地列成个水平队列,即排成 队列,即排成 (x,y),(x+1,y), …,(x+n -1,y)。文件的第 1 行是士兵数 n,1≤n≤10000。接下来 n 行是士兵的初始位置, 每行 2 个整数 x 和y,-10000 ≤x,y≤10000。//1为起始索引,(n-1)为元素数量,id为中位数。

2024-07-07 15:27:45 535

原创 问题 F: 深入浅出学算法014-输油管道问题

该管道要穿过一个有n口油井的油田。从每口油井都要有一条输油管道沿最短路径(或南或北)与主管道相连。如果给定n口油井的位置,及它们的x坐标(东西向)和y坐标(南北向),应如何确定主管道的最优位置,即使各油井到主管道之间的输油管道长度总和最小的位置?证明可规定时间内确定主管道的最优位置。接下来n行是油井的位置,每行2个整数x和y(-10000<=x,y<=10000)注:为方便铺设,要求主管道铺设在整数位置点。第一行是油井数n(1<=n<=10000)是油井到主管道之间的输油管道最小长度总和。

2024-07-06 16:58:15 317

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除