Jill旅行

news/2024/11/22 8:35:05/

【问题描述】Jill要进行一次旅行,沿途中要经过若干个城市。对于每两个相邻城市之间的路程,他都可以选择骑自选车或是坐公车汽车。如果沿途风景怡人,则他更喜欢骑自选车来完成这段路程。
Jill对每段路程都有评出了一个满意度,这是一个非零整数,所有他喜欢的路程标以正数,不喜欢的路程标以负数,数的绝对值大小代表他喜欢/不喜欢的程度。
如果在本次旅行中只允许在一段连续路程中骑自行车,而剩下的路程都坐公共汽车,并且要求骑车经过的那段路程满意度之和最大,请编程找出这样的路程。
【输入文件】输入文件jill.in第一行是一个整数b(1<=b<=5),代表本文件中提供b组输入数据。每组输入数据代表一次旅行中各相邻城市间路程的满意度,格式如下:
N
a1,2
a2,3
.......
aN-1,N
其中N(2<=N<=2000)是这次旅行中的城市总数,后面的N-1个数值ai,i+1分别表示城市i(1<=i<=N-1)与城市i+1之间路程的满意度。在每个数字之前可能有若干空格。
【输出文件】输出文件为jill.out。你的程序要为每组输入数据计算出骑自行车使满意度最大的连续路程。如果Jill在城市i开始骑自行车,在城市j(j>i)又开始坐公共汽车,那么满意度之和为:
A = ai,i+1 + ai+1, i+2, + ......+ aj-1, j
如果A>0,表示存在满意路径。这时使A达到 最大的路程为所求的解,输出如下内容(其中1<=r<=b是输入数据的序号):
The nicest part of route r is between stops i and j
如果存在多条路程使其满意度之和都是最大值,则选择路径最长的那一条(即j-I最大者);如果仍然存在多条这样的路径,则选择最早开始骑自选车的那一条(即i最小者)。
如果不存在这样的路径使A>0,则输出:
Route r has no nice parts
在输出的每一行末尾都要有一个回车符。
【输入样例】
 3
 3
        -1
        6
 10
        4
        -5

        4

        -3

        4

        4

        -4

        4

        -5

4

        -2

        -3

        -4
【输出样例】
The nicest part of route 1 is between stops 2 and 3
The nicest part of route 2 is between stops 3 and 9
Route 3 has no nice parts
【样例说明】 第一组的满意路径是从2到3,第二组的满意路径是从3到9,最后一组没有满意路径。
【评分标准】 结果正确则该测试点得满分,否则该测试点得0分。上传c语言源程序为jill.c。

#include <iostream>
using namespace std;
#include <fstream>
/*输入城市数目 n对应的路径条数有 n-1 条题目求解最优的骑行路径*/
int main() {fstream filein;fstream fileout;filein.open("jill.in", ios::in);fileout.open("jill.out", ios::out);int result_road[128][3];					//  3 列 第一列表示数据组号  第二列表示 起点  第三列表示终点int length_result = 0;int road[128];								// 存放路径的兴趣度int account;filein >> account;				//输入数据组的个数while (account) {int city_num;filein >> city_num;		//输入城市的个数for (int i = 0; i < city_num - 1; i++) {filein >> road[i];}int max = 0;							//定义最大满意度int start = 0;							//定义起点int end = 0;							//定义终点for (int i = 0; i < city_num - 1; i++) {	// 假设每一点都是起点if (road[i] < 0) {continue;}for (int h = city_num - 2; h >= i; h--) {	//假设每一点都是终点if (road[h] < 0) {continue;}int temp = 0;for (int w = i; w <= h; w++) {temp += road[w];}if (temp > max) {max = temp;start = i + 1;end = h + 2;}}//	cout << "---" << max << "---";}result_road[length_result][0] = max;result_road[length_result][1] = start;result_road[length_result++][2] = end;account--;}for (int i = 0; i < length_result; i++) {if (result_road[i][0] <= 0) {fileout << "Route " << i + 1 << " has no nice parts" << endl;} else {fileout << "The nicest part of route " << i + 1 << " is between stops " << result_road[i][1] << " and " <<result_road[i][2] << endl;}}
}


http://www.ppmy.cn/news/529361.html

相关文章

第40步 深度学习图像识别:DenseNet201建模(Tensorflow)

基于WIN10的64位系统演示 一、写在前面 &#xff08;1&#xff09;DenseNet201 DenseNet201是一种深度卷积神经网络&#xff0c;是DenseNet网络的一种变体。DenseNet&#xff0c;全称Dense Convolutional Network&#xff08;密集卷积网络&#xff09;&#xff0c;是由Faceb…

厦门大学计算机考研分析

关注我们的微信公众号 姚哥计算机考研 更多详情欢迎咨询 厦门大学&#xff08;B&#xff09;考研难度&#xff08;☆☆☆☆☆&#xff09; 厦门大学计算机考研主要招生学院有信息学院、人工智能研究院、医学院和电影学院。目前均已出拟录取名单。 厦门大学信息学院&#xff…

罗欣药业引进全球首个布地奈德溶液型鼻喷剂;勃林格殷格翰加速开发针对囊性纤维化患者的同类首创基因疗法 | 医药健闻...

| 行业焦点 勃林格殷格翰与合作伙伴加速开发针对囊性纤维化患者的同类首创基因疗法。勃林格殷格翰、IP 集团、英国囊性纤维化基因治疗联盟 (GTC&#xff0c;由伦敦帝国理工学院、牛津大学和爱丁堡大学的研究人员组成) 和牛津生物医药公司 (OXB)&#xff0c;近日宣布勃林格殷格翰…

非利克瑞尔数

【问题描述】 利克瑞尔数&#xff08;Lychrel Number&#xff09;指的是将该数各数位逆序翻转后形成的新数相加&#xff0c;并将该过程反复迭代后&#xff0c;结果永远无法是一个回文数的自然数。57就是一个非利克瑞尔数&#xff1a;5775132, 132231363&#xff0c;363是一个回…

Cartistem(可特立)再生细胞疗法

Cartistem&#xff08;可特立&#xff09;是利用从脐带血中抽取的干细胞为原料生产出的专门治疗退行性关节炎和受损膝盖软骨的药物&#xff0c;是全球第一种能够重生软骨的细胞治疗方案&#xff0c;也是全球唯一一种由国家级FDA批准的能够重生软骨的骨关节细胞治疗方案&#xf…

C++ 利克瑞尔数

利克瑞尔数(Lychrel Number)指的是将该数与将该数各数位逆序翻转后形成的新数相加、并将此过程反复迭代后&#xff0c;结果永远无法是一个回文数的自然数。 逆序并相加的过程是将一个数的各位逆序排列后再与原数相加&#xff0c;而得到两者之和。例如: 56 65 121, 125 521 …

(Python)非利克瑞尔数

【问题描述】 利克瑞尔数&#xff08;Lychrel Number&#xff09;指的是将该数各数位逆序翻转后形成的新数相加&#xff0c;并将该过程反复迭代后&#xff0c;结果永远无法是一个回文数的自然数。57就是一个非利克瑞尔数&#xff1a;5775132, 132231363&#xff0c;363是一个回…

没有时间可以浪费了!探险家伊泽瑞尔...

&#xfeff;&#xfeff; 发帖目录及线索&#xff1a; 一、ADC定位 1、 ADC定位&#xff1a; 2、 EZ作为ADC的优势和劣势分析 二、伊泽瑞尔技能分析 三、伊泽瑞尔出装分析 四、基于三基础上的EZ的ADC出装 五、常见的其它问题 1、 EZ技能的释放 2、 EZ的符文和天赋及召唤师技能…