Sicily 1264. Atomic Car Race[Special judge]
来源:互联网 发布:淘宝差评能追评吗 编辑:程序博客网 时间:2024/05/16 13:06
题目链接 soj.sysu.edu.cn/1264
题目大意
未来赛车比赛,起决定性因素的是换胎的安排。一场比赛中会有几个换胎的地点,每一次换胎虽然会增加换胎时间b,但是不更换轮胎的话,时间一久赛车的速度就会下降,从而增加比赛时间。所以我们要做的就是提供一个选择换胎点的策略。
思路
最容易想到的就是暴力法,将所有可能的策略进行枚举,思路简单,但是带来的问题就是时间上的开销。
从一一枚举的方法中,我们可以尝试使用动规进行优化。对于终点来说,最佳的策略就是从an[0]到a[n-1]的中选择一个换完胎之后跑到终点时时间花费最短的点 j 进行换胎(其中a[0]是起点,相当于整场比赛跑完都没有换胎)。而到达 j 点之前的时间又可以通过从a[0]到a[j - 1]之前的点计算得来。这种迭代的思想就是利用了最优化原理。
代码
#include <iostream>#include <string.h>#include <stdio.h>using namespace std;const int maxn = 10010;int n, an[110];double b, r, v, e, f;double dp[110];double dis[10010];double fun(int x){if (x >= r)return (1.0 / (v - e * (x - r)));elsereturn (1.0 / (v - f * (r - x)));}int main(){ios::sync_with_stdio(false);while (cin >> n && n) {an[0] = 0;for (int i = 1; i <= n; i ++)cin >> an[i];cin >> b;cin >> r >> v >> e >> f;dis[0] = 0;for (int i = 1; i <= an[n]; i ++)dis[i] = dis[i-1] + fun(i-1);dp[0] = 0;for (int i = 1; i <= n; i ++) {double minn = 1000000;if (dp[0] + dis[an[i]] < minn) // 因为第0号点是起点,不需要加入换胎时间b,所以单独提出来考虑minn = dp[0] + dis[an[i]];for (int j = 1; j < i; j ++)if (dp[j] + dis[an[i] - an[j]] + b < minn)minn = dp[j] + dis[an[i] - an[j]] + b;dp[i] = minn;}printf("%.4lf\n", dp[n]);}return 0;}
0 0
- Sicily 1264. Atomic Car Race[Special judge]
- sicily 1264 Atomic Car Race[Special judge]
- sicily 1264. Atomic Car Race
- Sicily.1264. Atomic Car Race
- Sicily 1264. Atomic Car Race
- 1264. Atomic Car Race (dp)
- [sicily]1151. 魔板[Special judge]
- [sicily]1151. 魔板[Special judge]
- Atomic Car Race - POJ 2744 dp
- Sicily 1721 Gray code[Special judge]
- sicily 1150&1151 魔板[Special judge]
- sicily 1515. 魔版C[Special judge]
- Sicily|1721. Gray code[Special judge]
- Sicily 1153 马的周游问题[Special judge] && sicily 1152
- Sicily 1152 简单的马周游问题[Special judge]
- Car race game
- Special Special Judge III ZOJ
- Sicily 2012 King[Special judge] (不是水题胜似水题)
- BW:数据源抽取机制(这篇是以前的笔记,写得很差,有不少错的地方,留着给自己看)
- stl_map.h
- ZOJ 3209 Treasure Map DLX
- 查询天气预报的Webservice接口程序源代码
- stl_multimap.h
- Sicily 1264. Atomic Car Race[Special judge]
- hdu 4686 Arc of Dream 矩阵快速幂
- stl_hashtable.h
- Spring中常用的一些注解
- FZU 1686 神龙的难题 重复覆盖
- CodeVs 1017 乘积最大
- stl_hash_set.h
- stl_hash_map.h
- uvalive 6669 hidden tree(好壮压dp)