首页 > 编程语言 >算法题---Jill旅行

算法题---Jill旅行

时间:2023-09-07 13:33:21浏览次数:57  
标签:路程 int 路径 --- 算法 Jill filein jill road


 【问题描述】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;
		}
	}
}

算法题---Jill旅行_ci



标签:路程,int,路径,---,算法,Jill,filein,jill,road
From: https://blog.51cto.com/u_16003019/7396097

相关文章

  • 行为型设计模式-模板方法 Template Method
    简介父类抽象类定义大的处理流程,部分细节做成抽象方法,留给子类去实现。如Java的JUnit中,setUptearDown方法都是留给具体的测试用例来写,Servlet中service处理了一个请求的大部分工作,留下doGet和doPost给业务自定义处理。另外callback一般分两种方式:同步回调、异步回调,其中同步......
  • 【230908-1】(指数对数比大小)已知:a=log0.1_0.2,b=log1.1_0.2,c=1.1^0.2,则a,b,c的大小
    ......
  • 【230908-3】同一直角坐标系中,分别作函数y=1/a^x,y=loga_(x-1/2)(a>0且a≠1)的图像如
    ......
  • 【230907-4】已知:a=log5_2,b=log0.5_0.2,c=0.5^0.2 求:a,b,c的大小关系(2019年天津理科
    ......
  • 无涯教程-JavaScript - BITAND函数
    描述BITAND函数返回两个数字的按位"AND"。语法BITAND(number1,number2)争论Argument描述Required/Optionalnumber1Mustbeindecimalformandgreaterthanorequalto0.Requirednumber2Mustbeindecimalformandgreaterthanorequalto0.Required......
  • 智能车---stc8学习笔记1
    采集状态,调整车身--控制电机,传感器获取偏差信息,根据控制逻辑实现电机驱动,采集决策执行  电源电路,稳压电路,保护时钟电路,给单片机提供时钟,心跳,而且确定了单片机工作的速度复位电路,上电重启    串行是一串一串发送数据定时器:很多事情不是来了才做,有......
  • 王道408---OS---文件管理
    一、文件的数据结构文件目录项/FCB一个FCB就是一个文件目录项FCB的有序集合称为"文件目录"FCB实现了文件名和文件之间的映射。使用户(用户程序)可以实现“按名存取”。FCB主要记录⽤来记录⽂件的名字,索引节点指针以及其他⽬录项的层级关联关系索引节点(简称i结点inode)索引......
  • [论文阅读] Explicit Boundary Guided Semi-Push-Pull Contras
    ExplicitBoundaryGuidedSemi-Push-PullContrastiveLearningforSupervisedAnomalyDetectionIntroduction只关注正常样本可能会限制AD模型的可判别性。如图1(a)所示,在没有异常情况的情况下,决策边界通常是隐式的,没有足够的判别性。在无监督异常检测中,由于缺乏对异常的了解......
  • JavaNote03-流程控制语句
    0.流程控制语句流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块。程序设计中规定的3种流程结构,即:顺序结构程序从上到下逐行地执行,中间没有任何判断和跳转。分支结构根据条件,选择性地执行某段代码。有if…else和switch-......
  • crm--纯后端部署
    博客地址:https://www.cnblogs.com/zylyehuo/技术栈:supervisor+nginx+uwsgi+django+virtualenv+mariadb基本流程crm纯后端部署是通过模板语言进行和前端通信的,前端代码写在后端中<!--模板语言-->{{static.el}}配置后端,uwsgi+crm进行项目运行环境变量......