pascal编程题目,真的不知道怎么做,求解答呀! 100
放暑假了,长大后的大明想去北京看一些名人书画,但名人的书画展馆太多,所以他只能看一部分展馆的书画。在北京郊区,假设华华想去的所有书画展馆都在一条直道上,书画展馆只有1号和...
放暑假了,长大后的大明想去北京看一些名人书画,但名人的书画展馆太多,所以他只能看一部分展馆的书画。在北京郊区,假设华华想去的所有书画展馆都在一条直道上,书画展馆只有1号和2号两类,参观1号书画展馆需30分钟,参观2号书画展馆要60分钟。已知:从去到各书画展馆的时间及书画展馆大小。请问:大明最多能够参观多少个书画展馆?
输入:一行两个整数:
n m
(n表示书画展錧个数 n<=100 ,总时间s为整数分钟)
输出:大明能够参观的最多展馆数例如:
输入:
5
200 30 120 100 75 50
2 1 2 1 1
输出: 3 (即参观1、4、5号展馆,总共用时195分钟)(走到最长的4号书画展馆共用去75分钟,再加上一个60分钟,两个30分钟,答案就等于195) 展开
输入:一行两个整数:
n m
(n表示书画展錧个数 n<=100 ,总时间s为整数分钟)
输出:大明能够参观的最多展馆数例如:
输入:
5
200 30 120 100 75 50
2 1 2 1 1
输出: 3 (即参观1、4、5号展馆,总共用时195分钟)(走到最长的4号书画展馆共用去75分钟,再加上一个60分钟,两个30分钟,答案就等于195) 展开
展开全部
Pascal太久不写了,已经不会了,能给你个大致的思路。
首先把展馆按从近到远排个序,然后i从1到n遍历,计算最远走到第i个展馆能参观多少。
最远走到第i个展馆能参观多少个展馆呢?首先,参观的展馆一定在1到i之间,由于时间的缘故可能无法全部参观,所以这时要看前i个展馆里有多少1类多少2类,优先参观1类,如果1类可以全参观完而时间还有余,参观2类,得到一个参观展馆数的最大值,记录下来。
最后,比较所有最大值,在其中再选择最大的一个。
首先把展馆按从近到远排个序,然后i从1到n遍历,计算最远走到第i个展馆能参观多少。
最远走到第i个展馆能参观多少个展馆呢?首先,参观的展馆一定在1到i之间,由于时间的缘故可能无法全部参观,所以这时要看前i个展馆里有多少1类多少2类,优先参观1类,如果1类可以全参观完而时间还有余,参观2类,得到一个参观展馆数的最大值,记录下来。
最后,比较所有最大值,在其中再选择最大的一个。
追问
想问一下,排序应该是按总时间排序还是按走到个展览馆的时间来排序啊?这是一个很大的问题啊。。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询