东华oj-进阶题第32题-三艘船

在这里插入图片描述

32 三艘船

作者: 朱星垠 时间限制: 10S章节: 一维数组

问题描述 :

明明由于工作的关系,经常需要坐船到某地出差办事。久而久之,明明就对这两地之间船的班次情况相当了解,他会根据办事的具体情况选择不同班次的船出行。这两地的船一共分为三个班次:特快船、快船、慢船,三个班次的船在同一天的0点从港口出发,并沿着同一路线匀速航行,只是它们到达目的地的时刻不同。
你作为明明的好朋友,有一次和明明在闲聊,问到他出差时船的航行距离有多少时,明明没有正面回答你这个问题,而只是把三艘船(特快、快、慢)的速度,以及它们到达目的地的时间是几点钟(并不知道分别是哪一天,只知道三艘船都在100天以内到达了终点)告诉了你,要你推算出两地间的距离长度。你作为一位程序设计专家,自然不会被明明的这个问题所难倒,于是你决定写一个程序,来求解这个看似困难其实简单的问题。
明明的问题可以归结为:给出三艘船的速度,以及它们到达目的地时是几点钟(并不知道分别是哪一天,只知道三艘船都在100天以内到达了终点),求两地间的距离到底有多少。若有多组解,只输出最小的那组解。
输入说明 :

你写的程序要求从标准输入设备中读入测试数据作为你所写程序的输入数据。标准输入设备中有多组测试数据,每组测试数据占二行,第一行有3个正整数a、b、c,代表3艘船的到达港口那天的时间是几点钟(0≤a、b、c≤23)。第二行有3个正整数d、e、f代表3艘船的速度(0<d、e、f<30000),速度的单位是单位距离每小时。每组测试数据与其后一组测试数据之间没有任何空行,第一组测试数据前面以及最后一组测试数据后面也都没有任何空行。
输出说明 :

对于每一组测试数据,你写的程序要求计算出一组相应的运算结果,并将这一组运算结果作为你所写程序的输出数据依次写入到标准输出设备中。每组运算结果由一个整数构成,代表路程的长度,若有多组解,只输出最小的那组解。每组运算结果与其后一组运算结果之间没有任何空行,第一组运算结果前面以及最后一组运算结果后面也都没有任何空行。
输入范例 : 4 2 20 5 10 13 18 12 21 6 9 12 输出范例 : 260 540

代码:

/*
	T32 三艘船 
	算法概述:采用暴力破解法。从慢船开始考虑,从i=99~1天一个个测试,
	例如i=99,慢船速度为13,到达时刻为20,则两地距离为13*99+20=1307,
	然后用得出的这个1307测试快船的到达时刻,若吻合,则继续测试特快船
	的到达时刻,若还是吻合,则这个1307即为答案,若中间有不吻合,则开始
	慢船的下一次测试,直到结果与其他两艘船的到达时刻吻合 
*/

#include<stdio.h>

int main() {
	int a = 0, b = 0, c = 0;
	int d = 0, e = 0, f = 0;
	int i = 0, j = 0, k = 0;
	int dis = 0;// 路程 
	int minDis = 30000 * 100 * 24 * 2;// 最小路程 
	
	while (scanf("%d%d%d", &a, &b, &c) != EOF) {
		scanf("%d%d%d", &d, &e, &f);
		
		if (a == 0)// 0点到达,为计算需要,处理成24点 
			a = 24;
		if (b == 0)
			b = 24;
		if (c == 0)
			c = 24;
		
		dis = 0;// 重置路程 
		minDis = 30000 * 100 * 24 * 2;
		for (i = 100; i >= 1; i--) {// 开始测试 
			dis = d * (i * 24 - (24 - a));
			for (j = i; j >= 1; j--) {// 检查与快船是否吻合 
				if (dis == e * (j * 24 - (24 - b))) {
					for (k = j; k >= 1; k--) {// 检查与特快船是否吻合 
						if (dis == f * (k * 24 - (24 - c))) {
							if (dis < minDis) {// 更新最小路程 
								minDis = dis;
							}
							break;
						}
					}
					break;
				}
			} 
		}
		printf("%d\n", minDis); 
	} 
		
	return 0;
} 

感觉这里面值得注意的是特殊时间点的处理
在这里插入图片描述

发布了63 篇原创文章 · 获赞 7 · 访问量 8460

猜你喜欢

转载自blog.csdn.net/qq_41409120/article/details/104533964