![](https://img-blog.csdnimg.cn/2019091813595558.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法训练
文章平均质量分 50
算法训练
深街酒徒*
专业气氛组成员
展开
-
算法训练 加法分解 Java题解 645 dfs
【问题描述】 给一个正整数n,输出它所有的正整数加法的分解方法。 注意: 1. 根据输入的要求决定交换加数的位置是否视为不同的分解方案。 2. 不分解也视为一种分解方案。 3. 按字典序输出所有分解方案,格式见样例。【输入格式】 输入共1行,包含2个正整数n和m,之间用一个空格隔开。n表示待分解正整数,m是1或者2: 1表示交换加数的位置是否视为不同的分解方案; 2表示交换加数的位置是否视为相同的分解方案。【输出格式】 输出若干行,每行表示一种分解方案。对于一种方案,先输原创 2022-03-19 16:29:22 · 217 阅读 · 0 评论 -
算法训练 校门外的树 Java 题解 (区间合并)29
区间合并算法原创 2022-03-17 17:15:24 · 92 阅读 · 0 评论 -
算法训练 校门外的树 Java 题解 (暴力)29
问题描述 某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米。我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置;数 轴上的每个整数点,即0,1,2,……,L,都种有一棵树。 由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已 知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点处的两棵树)移走。你的任务是计算将这些树 都移走后,马路上还有多少棵树。输入格式 输入文件的原创 2022-03-16 22:36:49 · 141 阅读 · 0 评论 -
算法训练 不高兴的津津 Java题解 620
问题描述 津津上初中了。妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。 但是津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高兴。假设津津不会因为其它事不高兴,并且她的不高兴不会持续到第二天。请你帮忙检查 一下津津下周的日程安排,看看下周她会不会不高兴;如果会的话,哪天最不高兴。输入格式 输入文件包括七行数据,分别表示周一到周日的日程安排。每行包括两个小于10的非负整数,用空格隔开,分别表示津津在原创 2022-03-14 21:14:56 · 148 阅读 · 2 评论 -
算法训练 反置数 java 题解 93
问题描述 一个整数的“反置数”指的是把该整数的每一位数字的顺序颠倒过来所得到的另一个整数。如果一个整数的末尾是以0结尾,那么在它的反置数当中,这些0就被省略掉了。比如说,1245的反置数是5421,而1200的反置数是21。请编写一个程序,输入两个整数,然后计算这两个整数的反置数之和sum,然后再把sum的反置数打印出来。要求:由于在本题中需要多次去计算一个整数的反置数,因此必须把这部分代码抽象为一个函数的形式。 输入格式:输入只有一行,包括两个整数,中间用空格隔开。 输出格式:输出只有一行,原创 2022-02-24 21:53:24 · 83 阅读 · 0 评论 -
算法训练 比较字符串 java 题解 71
编程实现两个字符串s1和s2的字典序比较。(保证每一个字符串不是另一个的前缀,且长度在100以内)。若s1和s2相等,输出0;若它们不相等,则指出其第一个不同字符的ASCII码的差值:如果s1>s2,则差值为正;如果s1<s2,则差值为负。样例输入java basic样例输出8java代码:import java.io.*;public class Main { public static void main(String[] args) throws IOExc原创 2022-02-24 21:22:25 · 73 阅读 · 0 评论 -
算法训练 审美课 java 题解 194 (哈希)
问题描述 《审美的历程》课上有n位学生,帅老师展示了m幅画,其中有些是梵高的作品,另外的都出自五岁小朋友之手。老师请同学们分辨哪些画的作者是梵高,但是老师自己并没有答案,因为这些画看上去都像是小朋友画的……老师只想知道,有多少对同学给出的答案完全相反,这样他就可以用这个数据去揭穿披着皇帝新衣的抽象艺术了(支持帅老师^_^)。 答案完全相反是指对每一幅画的判断都相反。输入格式 第一行两个数n和m,表示学生数和图画数; 接下来是一个n*m的01矩阵A: 如果aij=0,表示学生i觉得原创 2022-02-12 00:15:00 · 349 阅读 · 0 评论 -
算法训练 出现次数最多的整数 java 题解 90(map的存储和遍历)
问题描述 编写一个程序,读入一组整数,这组整数是按照从小到大的顺序排列的,它们的个数N也是由用户输入的,最多不会超过20。然后程序将对这个数组进行统计,把出现次数最多的那个数组元素值打印出来。如果有两个元素值出现的次数相同,即并列第一,那么只打印比较小的那个值。 输入格式:第一行是一个整数N[0,20];接下来有N行,每一行表示一个整数,并且按照从小到大的顺序排列。 输出格式:输出只有一行,即出现次数最多的那个元素值。输入输出样例样例输入5100150150200250样例原创 2022-02-24 21:18:40 · 120 阅读 · 0 评论 -
算法训练 瓷砖铺放 java 题解 11
问题描述 有一长度为N(1<=N<=10)的地板,给定两种不同瓷砖:一种长度为1,另一种长度为2,数目不限。要将这个长度为N的地板铺满,一共有多少种不同的铺法? 例如,长度为4的地面一共有如下5种铺法: 4=1+1+1+1 4=2+1+1 4=1+2+1 4=1+1+2 4=2+2 编程用递归的方法求解上述问题。输入格式 只有一个数N,代表地板的长度输出格式 输出一个数,代表所有不同的瓷砖铺放方法的总数样例输入4样例输出5原创 2022-02-03 21:22:13 · 478 阅读 · 0 评论 -
算法训练 幂方分解 java 题解 12
问题描述 任何一个正整数都可以用2的幂次方表示。例如: 137=27+23+20 同时约定方次用括号来表示,即ab可表示为a(b)。 由此可知,137可表示为: 2(7)+2(3)+2(0) 进一步:7= 22+2+20(21用2表示) 3=2+20 所以最后137可表示为: 2(2(2)+2+2(0))+2(2+2(0))+2(0) 又如: 1315=210+28+25+2+1 所以1315最后可表示为: 2(2(2+2(0))+2)+2...原创 2022-01-23 08:00:00 · 171 阅读 · 0 评论 -
算法训练 简单加法(基本型) java 题解 54
问题描述 首先给出简单加法算式的定义: 如果有一个算式(i)+(i+1)+(i+2),(i>=0),在计算的过程中,没有任何一个数位出现了进位,则称其为简单的加法算式。 例如:i=3时,3+4+5=12,有一个进位,因此3+4+5不是一个简单的加法算式;又如i=112时,112+113+114=339,没有在任意数位上产生进位,故112+113+114是一个简单的加法算式。 问题:给定一个正整数n,问当i大于等于0且小于n时,有多少个算式(i)+(i+1)+(i+2)是简单加法算式。原创 2022-01-15 08:00:00 · 163 阅读 · 0 评论 -
算法训练 统计字符次数 java 题解 73
问题描述:输入一个字符串(长度在100以内),统计其中数字字符出现的次数。样例输入Ab100cd200样例输出6解题思路:将输入中的数字的出现次数作统计java代码:import java.io.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new Input原创 2022-01-14 08:00:00 · 106 阅读 · 0 评论 -
算法训练 字符删除 java 题解 89
问题描述 编写一个程序,先输入一个字符串str(长度不超过20),再输入单独的一个字符ch,然后程序会把字符串str当中出现的所有的ch字符都删掉,从而得到一个新的字符串str2,然后把这个字符串打印出来。 输入格式:输入有两行,第一行是一个字符串(内部没有空格),第二行是一个字符。 输出格式:经过处理以后的字符串。输入输出样例样例输入123-45-678-样例输出12345678解题思路:在输入的第一行中找与第二行不相等的字符,拼接并输出。样例中的第二行会原创 2022-01-13 18:14:44 · 81 阅读 · 0 评论 -
算法提高 超级玛丽 java 题解 165
问题描述 大家都知道"超级玛丽"是一个很善于跳跃的探险家,他的拿手好戏是跳跃,但它一次只能向前跳一步或两步。有一次,他要经过一条长为n的羊肠小道,小道中有m个陷阱,这些陷阱都位于整数位置,分别是a1,a2,....am,陷入其中则必死无疑。显然,如果有两个挨着的陷阱,则玛丽是无论如何也跳过不去的。 现在给出小道的长度n,陷阱的个数及位置。求出玛丽从位置1开始,有多少种跳跃方法能到达胜利的彼岸(到达位置n)。输入格式 第一行为两个整数n,m 第二行为m个整数,表示陷阱的位置输出格式原创 2021-12-09 13:14:37 · 251 阅读 · 0 评论 -
算法训练 JAM计数法 java 题解
资源限制时间限制:1.0s 内存限制:256.0MB问题描述 Jam是个喜欢标新立异的科学怪人。他不使用阿拉伯数字计数,而是使用小写英文字母计数,他觉得这样做,会使世界更加丰富多彩。在他的计数法中,每个数字的位数都是相同的(使用相同个数的字母),英文字母按原先的顺序,排在前面的字母小于排在它后面的字母。我们把这样的“数字”称为Jam数字。在Jam数字中,每个字母互不相同,而且从左到右是严格递增的。每次,Jam还指定使用字母的范围,例如,从2到10,表示只能使用{b,c,d,e,f,g,h,.原创 2021-12-04 08:00:00 · 258 阅读 · 0 评论 -
试题 算法训练 数字游戏 java 题解 228
问题描述 给定一个1~N的排列a[i],每次将相邻两个数相加,得到新序列,再对新序列重复这样的操作,显然每次得到的序列都比上一次的序列长度少1,最终只剩一个数字。 例如: 3 1 2 4 4 3 6 7 9 16 现在如果知道N和最后得到的数字sum,请求出最初序列a[i],为1~N的一个排列。若有多种答案,则输出字典序最小的那一个。数据保证有解。输入格式 第1行为两个正整数n,sum输出格式 一个1~N的一个排列样例输入4 16样例输出原创 2021-11-30 13:24:09 · 8399 阅读 · 0 评论 -
试题 算法训练 车的放置 java 题解 996
问题描述 在一个n*n的棋盘中,每个格子中至多放置一个车,且要保证任何两个车都不能相互攻击,有多少中放法(车与车之间是没有差别的)输入格式 包含一个正整数n输出格式 一个整数,表示放置车的方法数样例输入2样例输出7数据规模和约定 n<=8 【样例解释】一个车都不放为1种,放置一个车有4种,放置2个车有2种。解题思路:车的放置是8皇后问题的简化版,当用一维数组标记时,只需考虑列不冲突就行。与8皇后不同的是,车的放置不需要将棋盘都摆满原创 2021-11-28 10:47:23 · 985 阅读 · 0 评论 -
试题 算法训练 P0804 java 题解 976
题目描述:编写一个函数void strcompress(char *s),输入一个字符串(只包含小写字母和空格,且长度小于1000),然后采用如下的规则对该字符串当中的每一个字符进行压缩: (1) 如果该字符是空格,则保留该字符。 (2) 如果该字符是第1次出现或第3次出现或第6次出现,则保留该字符。 (3) 否则,删除该字符。 例如,若用户输入occurrence,经过压缩后,字符c的第2次出现被删除,第1和第3次出现仍保留;字符r和e的第2次出现均被删除,因此最后的结果为:ocure原创 2021-11-27 12:29:35 · 676 阅读 · 0 评论 -
试题 算法训练 最大获利 java 題解 983
问题描述 Chakra是一位年轻有为的企业家,最近他在进军餐饮行业。他在各地开拓市场,共买下了N个饭店。在初期的市场调研中,他将一天划分为M个时间段,并且知道第i个饭店在第j个时间段内,会有Aij位服务员当值和Bij位客户光临。他还分析了不同饭店不同时间段客户的需求,得到第i个饭店在第j个时间段内,平均每位客户消费Cij元。为了创设品牌形象,Chakra决定每个饭店每天只选择一个时间段营业,每个服务员至多接待一位顾客(若顾客数多于服务员数,超过部分的顾客当天就无法在该店消费了)。 企业家的目的终究原创 2021-11-25 00:22:19 · 228 阅读 · 0 评论 -
试题 算法训练 计算众数 java 题解 485
问题描述 编写一个程序,计算递增数组的众数。程序第一行输入n(1≤n≤20),表示数组的长度;第二行输入数组中各个元素的值。输出数组中出现次数最多的元素。如果有两个元素出现的次数相同,即并列第一,那么只输出较小的那个元素。(注:输入的数组是递增数组,已经排好序,程序中不需要进行排序)样例输入6100 150 150 200 200 250样例输出150解题思路:常规逻辑,从头到尾依次遍历,当和前一个数一致时,计数器加一,当计数器比最大出现次数大时,更新最大次数和众数。原创 2021-11-22 18:42:32 · 253 阅读 · 0 评论 -
试题 算法训练 进制转换4 java 题解 608
问题描述 从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。 注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。样例输入FFFF样例输出65535解题思路:按十六进制转二进制定义计算即可,注意待转化的十进制数的最大数是2^32,由于int中有符号位,所以只能存到2^31,所以需用long存储。java代码:import java.io.*;public class Main { public st原创 2021-11-22 13:23:33 · 123 阅读 · 0 评论 -
试题 算法训练 奖学金 java 题解 621
问题描述 某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金。期末,每个学生都有3门课的成绩:语文、数学、英语。先按总分从高到 低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文成绩都相同,那么规定学号小的同学排在前面,这样,每个学生的排序是唯 一确定的。 任务:先根据输入的3门课的成绩计算总分,然后按上述规则排序,最后按排名顺序输出前5名学生的学号和总分。注意,在前5名同学中,每 个人的奖学金都不相同,因此,你必须严格按上述规则排序。例如,原创 2021-11-22 12:50:43 · 274 阅读 · 0 评论 -
试题 算法训练 观星 java 题解 624
问题描述 “观今夜天象,知天下大事。” 在三国杀中,诸葛亮的观星是一个强大的控场技能,效果是从牌堆顶翻起n张牌,任意改变顺序后放置到牌堆顶或牌堆底,能够有效控制下家的判定牌和手牌。 Winmad在一盘三国杀中选了诸葛亮作为自己的武将。由于场上有n名玩家,他可以观到n张牌,每张牌都有一个点数x(1<=x<=2000000000)。作为一个完美主义者,他希望自己将牌改变顺序后能成为一个单调递增的序列;但是他又是一个懒人,希望用最少的操作次数达到自己的目的。一次操作就是把位置相邻的两张牌原创 2021-10-31 17:00:17 · 260 阅读 · 0 评论 -
试题 算法训练 分解质因数 java 题解 605
问题描述 求出区间[a,b]中所有整数的质因数分解。输入格式 输入两个整数a,b。输出格式 每行输出一个数的分解,形如k=a1*a2*a3...(a1<=a2<=a3...,k也是从小到大的)(具体可看样例)样例输入3 10样例输出3=34=2*25=56=2*37=78=2*2*29=3*310=2*5提示 先筛出所有素数,然后再分解。数据规模和约定 2<=a<=b<=10000解题思路:原创 2021-10-31 14:33:41 · 149 阅读 · 0 评论 -
试题 算法提高 听说2quiz java 题解 1083
问题描述 在英语听说2课堂上,老师进行了大杀特杀的quiz,一共有M个人考N道试题,每人每道题目得分为0~10分,小于6分判定为该题不合格。 由于最后成绩太惨烈,老师承诺,如果某道试题不合格人数超过总人数的60%,则该题作废。 你的任务是判断每道题目是否作废。输入格式 第一行两个正整数M和N,表示参考人数和试题数目。 接下来N行,每行M个0~10的整数,表示每个人该题得分情况。输出格式 输出N行,对应N道试题。 若该试题作废,则输出“What The Hell”,否原创 2021-10-31 11:00:03 · 229 阅读 · 0 评论 -
试题 算法训练 连续正整数的和 java 题解 118
问题描述 78这个数可以表示为连续正整数的和,1+2+3,18+19+20+21,25+26+27。 输入一个正整数 n(<=10000) 输出 m 行(n有m种表示法),每行是两个正整数a,b,表示a+(a+1)+...+b=n。 对于多种表示法,a小的方案先输出。样例输入78样例输出1 1218 2125 27解题思路:模拟双指针移动,通过将前后指针间元素之和判断是否是待求答案或需要调整指针。另外还需要对边界值进行调试。java代码:原创 2021-10-31 10:36:27 · 186 阅读 · 0 评论 -
试题 算法训练 字串统计 java 题解
问题描述 给定一个长度为n的字符串S,还有一个数字L,统计长度大于等于L的出现次数最多的子串(不同的出现可以相交),如果有多个,输出最长的,如果仍然有多个,输出第一次出现最早的。输入格式 第一行一个数字L。 第二行是字符串S。 L大于0,且不超过S的长度。输出格式一行,题目要求的字符串。输入样例1:4bbaabbaaaaa输出样例1:bbaa输入样例2:2bbaabbaaaaa输出样例2:aa数据规模和约定n<=60S中所有字符都是小写英原创 2021-10-30 23:54:39 · 205 阅读 · 0 评论 -
试题 算法训练 逆序对个数 java 题解 557
问题描述 在一个数列(a1, a2, a3, …, an)中,对于1<=i<j<=n,如果ai>aj,则称(i,j)是一个逆序对。 如在数列(3, 1, 5, 2)中,有(1,2), (1,4), (3,4)共3个逆序对。 给定一个数列,求数列中的逆序对的个数。输入格式 输入的第一行包含一个正整数n(1<=n<=100),表示数列中的元素个数。 第二行包含n个非负整数,为a1,a2,…,an。数列中的每个元素都不大于10000。输出格式原创 2021-10-30 17:19:08 · 350 阅读 · 0 评论 -
试题 算法训练 欧拉的鸡蛋 java 题解 865
问题描述 大数学家欧拉在集市上遇到了本村的两个农妇每人跨着个空篮子。她们和欧拉打招呼说两人刚刚卖完了所有的鸡蛋。 欧拉随便问:“卖了多少鸡蛋呢?” 不料一个说:“我们两人自己卖自己的一共卖了150个鸡蛋.虽然我们卖的鸡蛋有多有少,但刚好得了同样的钱数。你猜猜看.” 欧拉猜不出。另一个补充道:“如果我按她那样的价格卖可以得到32元,如果她按我的价格卖可以得到24.5元”。 欧拉想了想说出了正确答案。 我们不是数学家懒得列出公式来分析。但计算机可以“暴力破解” 就是把所有可能情况都原创 2021-10-30 16:57:15 · 344 阅读 · 0 评论 -
算法训练 求先序遍历 java 题解 549
问题描述 给出一棵二叉树的中序与后序排列,求出它的先序排序(约定树结点用不同的大写字母表示,长度<=200)。输入格式 第1行为二叉树的中序遍历结果,第2行为二叉树的后序遍历结果输出格式 1行,为二叉树的先序遍历结果样例输入BADCBDCA样例输出ABCD解题思路:后序遍历的最后一个元素为根结点,该结点在中序遍历中将中序串分为左右两颗子树。递归即可。设当前串后序遍历最后一个元素在中序串中索引为index。当前中序串中左子树:(left原创 2021-10-19 20:02:31 · 133 阅读 · 0 评论 -
算法训练 根据前、中序遍历求后序遍历 java 题解 705
问题描述 给定一棵二叉树的前序遍历和中序遍历序列,用你所熟悉的程序设计语言生成该二叉树,并将其后序遍历打印出来。为便于编程,二叉树的结点用单个大写英文字母表示,且结点互不重复。比如,输入前序遍历序列为DBACPMZX,中序遍历序列为ABCDMPXA,应生成的二叉树结构如下图所示: 应输出的后序遍历序列为ACBMXZPD输入格式 两行两个大写字母字符串,分别代表前序和中序遍历输入格式 一行表示后序遍历样例输入DBACPMZXABCDMPXZ样例输出.原创 2021-10-19 19:46:10 · 377 阅读 · 0 评论 -
算法训练 递归输出数字三角形 java 题解 449
问题描述 输出一个n行的与样例类似的数字三角形,必须使用递归来实现输入格式 一个正整数数n,表示三角形的行数输出格式 输出一个与样例类似的n行的数字三角形,同一行每两个数之间用一个空格隔开即可(图中只是为防止题面格式化而用'_'代替空格)样例输入4样例输出___1__2_3_4_5_67_8_9_10数据规模和约定 n<=20解题思路:未使用递归,双层for解决。外层控制行,内层控制空格数和数字,注意每行最后不要留空格。递归原创 2021-10-18 18:23:11 · 753 阅读 · 0 评论 -
算法训练 递归输出数字 java 题解 446
问题描述 写一个递归程序,输入一个整数,按从高位到低位的顺序输出其所有数字,每两个数字中间用空格格开。例如,输入整数12345,输出1 2 3 4 5。请进一步思考如何修改程序,才能输出数字取反后的整数,即在上例中输出整数54321。注意这里的进一步思考仅供个人练习,不要提交到作业程序中,即最后的结果不要输出54321,否则自动判题程序会出错输入格式 输入一个整数n(1<=n<=100000)输出格式 按从高位到低位的顺序输出其所有数字,每两个数字中间用空格隔开(最后多原创 2021-10-17 11:33:42 · 1537 阅读 · 2 评论 -
算法训练 审美课 java 题解 194
问题描述 《审美的历程》课上有n位学生,帅老师展示了m幅画,其中有些是梵高的作品,另外的都出自五岁小朋友之手。老师请同学们分辨哪些画的作者是梵高,但是老师自己并没有答案,因为这些画看上去都像是小朋友画的……老师只想知道,有多少对同学给出的答案完全相反,这样他就可以用这个数据去揭穿披着皇帝新衣的抽象艺术了(支持帅老师^_^)。 答案完全相反是指对每一幅画的判断都相反。输入格式 第一行两个数n和m,表示学生数和图画数; 接下来是一个n*m的01矩阵A: 如果aij=0,表示学生i觉得原创 2021-10-13 13:33:08 · 61 阅读 · 0 评论 -
石子游戏 225 java 题解
问题描述 石子游戏的规则如下: 地上有n堆石子,每次操作可选取两堆石子(石子个数分别为x和y)并将它们合并,操作的得分记为(x+1)×(y+1),对地上的石子堆进行操作直到只剩下一堆石子时停止游戏。 请问在整个游戏过程中操作的总得分的最大值是多少?输入格式 输入数据的第一行为整数n,表示地上的石子堆数;第二行至第n+1行是每堆石子的个数。输出格式 程序输出一行,为游戏总得分的最大值。样例输入1051051940027309198922781425129原创 2021-10-13 11:58:01 · 122 阅读 · 0 评论 -
单词长度 500 java 题解
问题描述 编写一个程序,计算指定单词的长度。 程序第一行输入一个含有多个单词的字符串str(长度小于100),单词与单词之间用一个或多个’*’、’-’隔开,程序第二行输入n,表示要计算第几个单词的长度。程序输出指定单词的长度。样例输入So*-*Easy1样例输出2解题思路:先找到待查单词的首索引,再找单词字符数。主要逻辑稍繁琐,如果某个字符前有分隔符,单词数就加一,找到首索引退出循环即可。java代码:import java.io.*;public原创 2021-10-12 20:47:24 · 111 阅读 · 0 评论 -
算法训练 括号检查 java 题解 517
题目描述:我们知道,编程中表达式常常只能使用小括号来改变运算的先后次序,并且没有其他括号可以使用。比如一元二次方程求根的表达式: -b+sqrt(b*b-4*a*c)/(2*a) 再比如求用海伦公式求三角形的面积: ((a+b+c)/2-a)*((a+b+c)/2-b)*((a+b+c)/2-c)*(a+b+c)/2 如果剥离出上述表达式的字母,只保留括号,则它们分别为: ()() (())(())(())() 括号添加的规则是: 1、总体上看,左右括号必须数量一样多。原创 2021-10-12 19:44:03 · 223 阅读 · 0 评论 -
入学考试 030 java 题解
问题描述 辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大。” 如果你是辰辰,你能完成这个任务吗?输入格式 第一行有两个整数T(1 <= T <= 1000原创 2021-10-11 18:56:40 · 119 阅读 · 0 评论 -
完全背包问题 857 java题解
问题描述 有一個背包,容量為M。有N種物品,每種物品有其體積Wi與價值Vi。將這些物品的一部分放入背包,每種物品可以放任意多個,要求總體積不超過容量,且總價值最大。输入格式 第一行為N, M。 之後N行,每行為Wi, Vi。输出格式 一個數,為最大價值。样例输入3 2015 166 67 5样例输出18数据规模和约定 N, M<=1000。解题思路:输入时是无序给的一些物品重量和物品价值,需要先排序存放至数组中,转换成常规问题求解。原创 2021-10-11 12:05:56 · 256 阅读 · 0 评论