新足迹

 找回密码
 注册

精华好帖回顾

· 我读过的一本好书 - 陈慧的《拾香记》 (2011-8-31) astina · 欧洲拍摄小结 2013 (2013-10-24) Wolongshan
· 分享自己今天刚做完的一个桌子和两个凳子(设计很独特) (2010-8-4) coleclark999 · 我在布里斯班的生活 – 工作篇 (2005-1-8) dreamer
Advertisement
Advertisement
查看: 2154|回复: 18

请编程高手们帮忙看看一道题,中学生级别的,持分等待。。。 [复制链接]

发表于 2014-7-9 16:13 |显示全部楼层
此文章由 rainwater 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 rainwater 所有!转贴必须注明作者、出处和本声明,并保持内容完整
最好是用C#或C++,刚开始学习,很多地方弄不明白,请高手们帮帮忙

Input File: ticketin.txt
Output File: ticketout.txt
Time Limit: 1 second

假设有人去一个城市旅游,有两种车票,3天票$4,5天票$7,他要出门的天数是分别是第1, 2, 4, 6, 8, 13 和 16天,这样的话,他应该买两个5天票一个3天票,总共最小花费是18元。

题目要求是
input file:
4 3.......票价 天数
7 5......票价 天数
7.........出门的天数
1.........第几天
2
4
6
8
13
16

output file
要求算出最小花费
Advertisement
Advertisement

发表于 2014-7-9 16:48 |显示全部楼层
此文章由 HappyRain 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 HappyRain 所有!转贴必须注明作者、出处和本声明,并保持内容完整
给你个思路,每一次买票 都从出门 那一天开始,往后 累加 到后面出门那天 的 总天数,买能够覆盖天数最便宜的票

请见下面的例子。

例如:
   1) 从出门第1天开始, 1, 2, 4  共 4 天,所以买 5天票 $7。 ( 如果再算上下一次出门那天,1,2,4,6 总天数为6天,没有这么长的票。所以第一次买 5天票 $7。)

   2) 第6天又出门了,同理,往后看,: 6, 8 共3天,(如果再算上下一次出门那天 6,8,13 总天数为8天,没有这么长的票),所以这次买3天的票$4
   
   3)  最后第13天又出门了, 13,16共4天,后面不出门了,所以这次就买能够覆盖天数最便宜的票,,只有5天$7

所以,总共买了两个5天票,一个3天票,最小花费是18元。

注意:不同的票价参数,需要测试算法的正确性。

评分

参与人数 1积分 +1 收起 理由
rainwater + 1 多谢!

查看全部评分

发表于 2014-7-9 16:54 |显示全部楼层
此文章由 rainwater 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 rainwater 所有!转贴必须注明作者、出处和本声明,并保持内容完整
HappyRain 发表于 2014-7-9 15:48
给你个思路,每一次买票 都从出门 那一天开始,往后 累加 到后面出门那天 的 总天数,买能够覆盖天数最便宜 ...

多谢回复!

这个方法我想过了,但是有个问题,万一是第1,5,6,7,8,9天出门呢?
照这个算法,第一次买够5天,1,5。剩下的还得买5天票。而实际上第一次买3天票,接下来买5天票就够了。

这种情况怎么解决呢?

发表于 2014-7-9 17:06 |显示全部楼层
此文章由 nineyes 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 nineyes 所有!转贴必须注明作者、出处和本声明,并保持内容完整
如果数字不大只有100天内就把所有可能列出来让电脑自己算
如果数字很大就分段

我觉得最好的建议是买月票

评分

参与人数 1积分 +1 收起 理由
rainwater + 1 多谢!

查看全部评分

发表于 2014-7-9 17:36 |显示全部楼层
此文章由 stevenbian 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 stevenbian 所有!转贴必须注明作者、出处和本声明,并保持内容完整
遍历二叉树中学生就学了?

评分

参与人数 2积分 +5 收起 理由
kane321 + 4 精品文章
rainwater + 1 多谢!

查看全部评分

发表于 2014-7-9 17:45 |显示全部楼层
此文章由 rainwater 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 rainwater 所有!转贴必须注明作者、出处和本声明,并保持内容完整
nineyes 发表于 2014-7-9 16:06
如果数字不大只有100天内就把所有可能列出来让电脑自己算
如果数字很大就分段

多谢回复!能再详细些吗?如何分段?每个可能都做的话不会time out吗?

题目要求是:
旅行天数是0 ≤ D ≤ 10,000
票价是$1到$1000的范围
票的有效天数是1到100天之内
Advertisement
Advertisement

发表于 2014-7-9 17:48 |显示全部楼层
此文章由 rainwater 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 rainwater 所有!转贴必须注明作者、出处和本声明,并保持内容完整
stevenbian 发表于 2014-7-9 16:36
遍历二叉树中学生就学了?

听上去很高深的样子,放狗搜了一下,还是不大明白,能详细解释一下吗?谢谢!

发表于 2014-7-9 17:52 |显示全部楼层
此文章由 rainwater 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 rainwater 所有!转贴必须注明作者、出处和本声明,并保持内容完整
stevenbian 发表于 2014-7-9 16:36
遍历二叉树中学生就学了?

中学生没学过,所以不懂呀

发表于 2014-7-9 18:00 |显示全部楼层
此文章由 stevenbian 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 stevenbian 所有!转贴必须注明作者、出处和本声明,并保持内容完整
就是搞一个二叉树左节点是3天右节点是5点,用你的天数遍历一遍子节点,然后找个价格最小的就行了。

评分

参与人数 1积分 +1 收起 理由
rainwater + 1 多谢!

查看全部评分

发表于 2014-7-9 18:14 |显示全部楼层
此文章由 rainwater 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 rainwater 所有!转贴必须注明作者、出处和本声明,并保持内容完整
stevenbian 发表于 2014-7-9 17:00
就是搞一个二叉树左节点是3天右节点是5点,用你的天数遍历一遍子节点,然后找个价格最小的就行了。 ...

多谢了!在youtube上找到不少视频教这个的,好好学学,但愿能弄懂。

发表于 2014-7-11 22:52 |显示全部楼层
此文章由 很明显 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 很明显 所有!转贴必须注明作者、出处和本声明,并保持内容完整
本帖最后由 很明显 于 2014-7-11 22:28 编辑

笑而不语
Advertisement
Advertisement

发表于 2014-7-11 23:30 |显示全部楼层
此文章由 kane321 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kane321 所有!转贴必须注明作者、出处和本声明,并保持内容完整
很明显 发表于 2014-7-11 21:52
笑而不语

咋 这么快就编辑了啊?

发表于 2014-7-12 12:06 |显示全部楼层
此文章由 lena07 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 lena07 所有!转贴必须注明作者、出处和本声明,并保持内容完整
这不是最简单的线性规划问题吗

评分

参与人数 1积分 +2 收起 理由
rainwater + 2 多谢指点!

查看全部评分

发表于 2014-7-12 13:46 |显示全部楼层
此文章由 rainwater 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 rainwater 所有!转贴必须注明作者、出处和本声明,并保持内容完整
很明显 发表于 2014-7-11 21:52
笑而不语

别不语呀,帮忙看看,给个思路也行

发表于 2014-7-12 13:46 |显示全部楼层
此文章由 rainwater 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 rainwater 所有!转贴必须注明作者、出处和本声明,并保持内容完整
lena07 发表于 2014-7-12 11:06
这不是最简单的线性规划问题吗

能详细解释一下吗?谢谢!

发表于 2014-7-12 14:58 |显示全部楼层
此文章由 joerkky 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 joerkky 所有!转贴必须注明作者、出处和本声明,并保持内容完整
rainwater 发表于 2014-7-12 12:46
能详细解释一下吗?谢谢!

http://wiki.mbalib.com/wiki/%E6%95%B4%E6%95%B0%E8%A7%84%E5%88%92

评分

参与人数 1积分 +2 收起 理由
rainwater + 2 多谢指点!

查看全部评分

Advertisement
Advertisement

发表于 2014-7-12 22:01 |显示全部楼层
此文章由 很明显 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 很明显 所有!转贴必须注明作者、出处和本声明,并保持内容完整
叹服澳洲IT界

发表于 2014-7-16 17:05 |显示全部楼层
此文章由 鱼羊鲜 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 鱼羊鲜 所有!转贴必须注明作者、出处和本声明,并保持内容完整
厉害

发表于 2014-7-18 20:43 |显示全部楼层
此文章由 toro 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 toro 所有!转贴必须注明作者、出处和本声明,并保持内容完整
看不懂 原 po 所要表達的方式@@

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部