news 2026/6/16 18:39:49

UVa 507 Jill Rides Again

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
UVa 507 Jill Rides Again

题目描述

题目要求从一段道路的niceness\texttt{niceness}niceness值序列中,找出连续子段的最大和。若最大和为正,输出该子段的起始和结束站点编号(站点从111开始);若有多个子段达到最大和,选择长度最长(即经过的道路数最多)的;若长度相同,选择起始站点最小的。若最大和不为正,输出无解信息。

输入格式

第一行一个整数bbb,表示公交路线的数量。每个路线描述的第一行是一个整数sss2≤s≤200002 \le s \le 200002s20000),表示该路线的站点数。接下来s−1s-1s1行,每行一个整数nin_ini,表示站点iiii+1i+1i+1之间的niceness\texttt{niceness}niceness值。

输出格式

对于每条路线,输出一行:

  • 若最大和为正,输出The nicest part of route r is between stops i and j
  • 否则,输出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

题目分析

本题的核心是求解最大子段和,并记录最优子段的起止位置。由于sss可达200002000020000,使用O(s)O(s)O(s)Kadane\texttt{Kadane}Kadane算法即可。

算法

  • 遍历每个niceness\texttt{niceness}niceness值,维护当前子段和maxCurrent\textit{maxCurrent}maxCurrent及其起止位置。
  • 若当前niceness\texttt{niceness}niceness值大于maxCurrent\textit{maxCurrent}maxCurrent,则从当前位置开始新的子段。
  • maxCurrent>max\textit{maxCurrent} > \textit{max}maxCurrent>max,或maxCurrent==max\textit{maxCurrent} == \textit{max}maxCurrent==max且当前子段长度更长,则更新最优解。

注意点

  • 站点编号与道路编号的关系:道路nin_ini连接站点iiii+1i+1i+1,因此子段从站点startstartstartendendend包含的道路为nstart,nstart+1,…,nend−1n_{start}, n_{start+1}, \ldots, n_{end-1}nstart,nstart+1,,nend1
  • maxCurrent\textit{maxCurrent}maxCurrent为负时,应放弃当前子段,从下一个位置重新开始。
  • 若所有niceness\texttt{niceness}niceness值均为负,则最大和为负,输出无解。

复杂度分析

时间复杂度O(s)O(s)O(s),空间复杂度O(1)O(1)O(1)

代码实现

// Jill Rides Again// UVa ID: 507// Verdict: Accepted// Submission Date: 2016-08-21// UVa Run Time: 0.040s//// 版权所有(C)2016,邱秋。metaphysis # yeah dot net#include<bits/stdc++.h>usingnamespacestd;intmain(intargc,char*argv[]){cin.tie(0);cout.tie(0);ios::sync_with_stdio(false);intcases;cin>>cases;for(intr=1;r<=cases;r++){ints,niceness;cin>>s>>niceness;intmax=niceness,start=1,end=2;intmaxCurrent=niceness,startCurrent=1,endCurrent=2;s--;for(inti=2;i<=s;i++){cin>>niceness;endCurrent=i+1;maxCurrent+=niceness;if(niceness>maxCurrent){startCurrent=i,endCurrent=i+1;maxCurrent=niceness;}if(maxCurrent>max||(maxCurrent==max&&abs(endCurrent-startCurrent)>abs(end-start))){max=maxCurrent;start=startCurrent,end=endCurrent;}}if(max>0){cout<<"The nicest part of route "<<r<<" is between stops ";cout<<start<<" and "<<end<<'\n';}elsecout<<"Route "<<r<<" has no nice parts\n";}return0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/16 18:37:59

多平台小说下载器终极指南:轻松实现本地化阅读

多平台小说下载器终极指南&#xff1a;轻松实现本地化阅读 【免费下载链接】novel-downloader 一个可扩展的通用型小说下载器。 项目地址: https://gitcode.com/gh_mirrors/no/novel-downloader 你是否经常遇到心爱的小说突然消失&#xff0c;或者想在没有网络的环境下畅…

作者头像 李华
网站建设 2026/6/16 18:32:48

商用面食加工三个核心需求 盛毅食品机械面条机适配分析

商用面食加工领域&#xff0c;生产效率与产品标准化是企业发展的核心基础&#xff0c;江苏镇江市丹阳市盛毅食品机械面条机就是面向该领域开发的专业面食加工设备&#xff0c;可适配多种面食生产场景的加工需求。 近年来国内面食消费市场持续扩容&#xff0c;产品品类不断丰富&…

作者头像 李华
网站建设 2026/6/16 18:30:12

Office文档3秒预览:QuickLook原生插件让你的工作效率翻倍

Office文档3秒预览&#xff1a;QuickLook原生插件让你的工作效率翻倍 【免费下载链接】QuickLook.Plugin.OfficeViewer-Native View Word, Excel, and PowerPoint files with MS Office and WPS Office components. 项目地址: https://gitcode.com/gh_mirrors/qu/QuickLook.P…

作者头像 李华
网站建设 2026/6/16 18:15:00

数智重构安全赛道 ——AI 安全产业演进与市场分析

人工智能技术的全面普及&#xff0c;正在从攻防模式、产品形态、运营逻辑等多个维度重塑网络安全与数据安全产业。传统以静态规则、人工运维、被动处置为核心的安全体系&#xff0c;已难以应对 AI 驱动的新型攻击、海量异构数据与复杂跨境业务风险。在此背景下&#xff0c;AI 安…

作者头像 李华
网站建设 2026/6/16 18:09:49

paperxie 论文降重降 AIGC:分模式精准化解学术检测双重压力

paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/课程论文降重复率 - PaperXie智能写作PaperXie免费论文查重检测-首款免费论文检测软件,为毕业生提供专业的论文重复率检测、论文降重、Aigc检测、智能排版 、论文写作等一站式服务。https://www.paperxie.c…

作者头像 李华
网站建设 2026/6/16 18:04:34

实战拆解|三类RAG架构差异:朴素、进阶、多轮RAG落地选型指南

很多AI产品、转行求职者、初级研发都有一个通病&#xff1a;只会笼统说“我做过RAG项目”&#xff0c;但不会选型、分不清架构层级。面试一问就露馅&#xff1a;为什么你的知识库准确率低&#xff1f;为什么不支持追问&#xff1f;什么场景用朴素RAG、什么场景必须上多轮RAG&am…

作者头像 李华