博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
最低票价
阅读量:4187 次
发布时间:2019-05-26

本文共 838 字,大约阅读时间需要 2 分钟。

在一个火车旅行很受欢迎的国度,你提前一年计划了一些火车旅行。在接下来的一年里,你要旅行的日子将以一个名为 days 的数组给出。每一项是一个从 1 到 365 的整数。

火车票有三种不同的销售方式:

  • 一张为期一天的通行证售价为 costs[0] 美元;
  • 一张为期七天的通行证售价为 costs[1] 美元;
  • 一张为期三十天的通行证售价为 costs[2] 美元。

通行证允许数天无限制的旅行。 例如,如果我们在第 2 天获得一张为期 7 天的通行证,那么我们可以连着旅行 7 天:

第 2 天、第 3 天、第 4 天、第 5 天、第 6 天、第 7 天和第 8 天。

返回你想要完成在给定的列表 days 中列出的每一天的旅行所需要的最低消费。

1、暴力解法 (超时)

int minCost = Integer.MAX_VALUE;	public int solve(int idx, int[] days, int[] costs, int range, int sum)	{		if (idx == days.length)		{			minCost = Math.min(minCost, sum);			return sum;		}				// 该天数包含在假期内,不需要再花钱		if (days[idx] < range)		{			solve(idx+1, days, costs, range, sum); 		}				// 三种方案		int a = solve(idx+1, days, costs, days[idx], sum+costs[0]);		int b = solve(idx+1, days, costs, days[idx]+7, sum+costs[1]);		int c = solve(idx+1, days, costs, days[idx]+30, sum+costs[2]);		return minCost;	}

 优化:

转载地址:http://ccpoi.baihongyu.com/

你可能感兴趣的文章
中国惠普公司企业计算及专业服务集团卫东:IT治理最重要就是保证技术与业务有效结合
查看>>
《给初学者的Windows Vista的补遗手册》之064
查看>>
《给初学者的Windows Vista的补遗手册》之063
查看>>
《给初学者的Windows Vista的补遗手册》之062
查看>>
《给初学者的Windows Vista的补遗手册》之057
查看>>
《给初学者的Windows Vista的补遗手册》之056
查看>>
《给初学者的Windows Vista的补遗手册》之045
查看>>
域名1元价,我也来注册一个
查看>>
《给初学者的Windows Vista的补遗手册》之037
查看>>
《给初学者的Windows Vista的补遗手册》之036
查看>>
《给初学者的Windows Vista的补遗手册》之035
查看>>
Spring开发指南 0.8 发布
查看>>
微软宣布将推出XNA Game Studio
查看>>
MySQL宣布加入微软Visual Studio工业伙伴计划
查看>>
菜鸟、夫子、玫林凯与测试
查看>>
无锁编程与分布式编程那个更适合多核CPU?
查看>>
多核系统中三种典型锁竞争的加速比分析
查看>>
多核新观念-象使用内存一样使用CPU?
查看>>
OpenMP创建线程中的锁及原子操作性能比较
查看>>
多核编程中的任务随机竞争模式的概率分析
查看>>