杭电OJ---1003

杭电oj做题记录(1003) 在一整个序列的数中,找出一段和值最大的子序列。设定好最大和值maxsum为-1001,在输入整个数字序列后,动态计算和值sum并赋值到maxsum。即如果sum>maxsum着maxsum替换成新值,如果计算到最后的值比倒数第二个值小使用if()判断句,也并不会影响最后maxsum的输出。无法一开始定下锚点t,则t=i+1;这是一道动态规划入门题。简单阐述一下自己的思路。i值为当前累加到的数值。 阅读详情
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
vector<int> FindMaxSum(vector<int>&arr)
{
	vector<int>ret;
	bool isFirst = 0;
	int sum = arr[0],tsum=arr[0],index_1=0,index_2=0,max=0,maxi=0,maxj=0;
	for (int i = 1; i < arr.size(); i++)
	{
		if (tsum < 0)
		{
			tsum = arr[i];
			index_1 = i;//记录开头
			index_2 = 0;//重置结尾
		}
		else
		{
			tsum = arr[i] + tsum;
			index_2++;//结尾加一
		}
		if (tsum > sum)
		{
				sum = tsum;
				maxi = index_1;
				maxj = index_2;//这个是相对index_1的偏移
		}
	}
	ret.push_back(sum);
	ret.push_back(maxi+1);
	ret.push_back(maxj+maxi+1);
	return ret;
}

int main()
{
	int input = 0,index=0,times=0,temp=0;
	vector<int>in;
	scanf("%d",&times);
	while (times)
	{
		scanf("%d", &input);
		for (int i = 0; i < input; i++)
		{
			scanf("%d", &temp);//输入每组的数字
			in.push_back(temp);
		}
		in=FindMaxSum(in);
		printf("Case %d:\n", ++index);
		printf("%d %d %d\n",in[0],in[1],in[2]);
		--times;
		if (times)
			printf("\n");
		in.clear();//清空vector
	}
	return 0;
}


还是不多说
杭电oj 1003 Max Sum(动态规划) 动态规划求最大连续子序列和Problem DescriptionInputOutputSample InputSample Output题目大意解题思路代码说明 题目链接: Max Sum Problem Description Given a sequence a[1],a[2],a[3]…a[n], your job is to calculate the max sum of a sub-... 阅读详情

相关推荐

杭电OJ 1003题 动态规划 最大连续序列和

Max Sum Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 145161    Accepted Submission(s): 33897 Problem Description Given a seque

星辰大海 1590

杭电OJ1003-C语言-详解

问题描述:Problem-1003:Max Sum 本题用暴力解法时间复杂度高达O(n^3),会超时,因此找一种合适的方法来简化问题; 最优子序列是个序列,那么必然含有起始位置和终止位置,我们以每个a[i]作为研究对象,研究以i为终止位置的最优子序列,得出唯一确定的以a[i]为结尾的最优子序列,每个a[i]有一个以他为结尾的最优子序列,再便利所有的最优子序列,找出最优子序列里的...

ruiruiruiruirain的博客 4441

别再为CAD和GIS数据对不上而头疼了!一份完整的ArcGIS for AutoCAD坐标系定义与数据套合指南

本文详细介绍了如何通过ArcGIS for AutoCAD插件解决CAD与GIS数据坐标系不匹配的问题,实现数据的精准套合。文章从坐标系冲突分析、插件核心功能解析到五步标准化工作流,提供了完整的解决方案,帮助工程师和设计师提升跨平台协作效率。

weixin_42531886的博客 216

杭电OJ1003--最大和问题

本题巧用结构体,记录分别以a[0],a[1]....为结束位置的最大子串,以达到遍历所有最大子串的效果,b[].x为该子串的起始位置,b[].lar为该子串的和。最后找出以a[i]为终点的子串为最大子串,记录他的起始位置x,和终点i. #include <stdio.h> #include <stdlib.h> struct{ int x; int lar; }b[100000]; int main() { int i,t,n,a[100000],m,max,s,k; ...

weixin_53094331的博客 475

深度学习——VGG16模型详解

1、网络结构 VGG16模型很好的适用于分类和定位任务,其名称来自牛津大学几何组(Visual Geometry Group)的缩写。 根据卷积核的大小核卷积层数,VGG共有6种配置,分别为A、A-LRN、B、C、D、E,其中D和E两种是最为常用的VGG16和VGG19。 介绍结构图: conv3-64 :是指第三层卷积后维度变成64,同样地,conv3-128指的是第三层卷积后维度变成128; input(224x224 RGB image) :指的是输入图片大小为224244的彩色图像,通道为

橙子的博客 12万+

【Unity Animation 2D】从零到一:骨骼绑定与IK动画实战指南

本文详细介绍了Unity中2D骨骼绑定与IK动画的实战流程,从角色素材准备、骨骼系统创建到权重绘制和IK设置,逐步指导开发者掌握2D动画制作技巧。通过反向动力学(IK)技术,实现更自然的角色动画效果,适用于游戏开发和动画制作。

weixin_30430677的博客 370

杭电oj刷题——1003(最大连续子序列)

杭电oj刷题——1003 问题描述: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1003 Sample Input 2 5 6 -1 5 4 -7 7 0 6 -1 1 -6 7 -5 Sample Output Case 1: 14 1 4 Case 2: 7 1 6 #include&amp;amp;lt;iostream&amp;amp;gt; using namesp...

剑指offer03——数组中重复的数字 817

Zipformer实战:5分钟快速搭建语音识别模型(附LibriSpeech测试结果)

本文提供了一份详细的Zipformer语音识别模型实战指南。通过清晰的步骤,指导读者在5分钟内完成从环境配置、LibriSpeech数据集准备到模型训练与测试的全过程。文章重点解析了关键配置参数,并分享了在LibriSpeech测试集上的性能结果,帮助开发者快速评估和应用这一高效的语音识别架构。

weixin_35578748的博客 162

杭电oj-1003(Max Sum)

给定序列,计算最大的连续子序列和以及对应的开始下标和结束下标。例如,给定 (6,-1,5,4,-7),此序列中的最大和为 6 + (-1) + 5 + 4 = 14,开始下标为1,结束下标为4。本人比较菜所以首先考虑暴力法,保存数组的第一位为max,计算每一个子序列的和与max进行比较,但时间复杂度会达到O(n^3),超时。个人学习经验,欢迎各位指导。

weixin_51670979的博客 1647

2025.06.24【R语言】|clusterProfiler安装与常见报错FAQ全解

本文介绍了clusterProfiler工具的安装方法及常见报错解决方案。安装可通过Bioconductor或Conda完成,需注意安装配套注释包。文中列举了10种常见报错,包括依赖包缺失、ID类型不匹配、物种不支持等问题,并给出具体解决方法。最后总结了GO/KEGG富集分析的标准流程,包括ID转换、富集分析和可视化步骤,为生物信息学分析提供实用参考。建议使用R≥4.2版本,并确保正确调用BiocManager进行安装。

5994

MT25QL256完整操作指南:从ID读取到4KB扇区擦除(附华大SPI例程)

本文提供了MT25QL256 NOR FLASH在华大MCU上的完整驱动开发指南。内容涵盖从SPI初始化、器件ID读取、状态寄存器查询,到核心的页编程和4KB扇区擦除操作,并分享了构建健壮驱动框架、处理跨页写入及常见调试问题的实战经验。

tt34567的博客 886

杭电OJ 1003Max Sum

杭电OJ 1003Max Sum 链接http://acm.hdu.edu.cn/showproblem.php?pid=1003 思路:其实就是比较sum+新的一个a[i]是否小于a[i],小于则从i,开始计数,不小于则包括i; #include<iostream> #include<cstdio> #include<cstring> using namespace std; typedef long long ll; int a[100010]; int st, e

记录一些刷过的题并分享学习心得 293

OpenHarmony Stage模型深度解剖:从Ability Kit到沙箱隔离的全链路底层原理

基于微内核架构,提供进程管理、内存管理、IPC通信等基础能力:包含V8引擎、ArkTS运行时、渲染引擎等核心组件:Ability Kit框架,提供应用生命周期管理、组件调度等能力:基于Stage模型的应用程序。

m0_67505153的博客 191

杭电OJ——ACM 1003.Max Sum

Max Sum 杭电OJ——ACM 1003.Max Sum链接入口 问题描述 大意:给定一个序列a[1],a[2],a[3]…a[n],你需要算出其子序列中的最大值。比如说:给你一个序列(6,-1,5,4,-7),它的子序列之和中的最大值是6 + (-1) + 5 + 4 = 14。 输入 大意: 第一行是一个范围在1到20的整数T,代表着接下来输入的测试案例; 接下来的T行,每一行都首先是一个范围在1到100000的数字N,代表着该测试案例中所包含的测试数据个数。其次,接着就是N个范围在-100

peng_YuJun的博客 1802

Unity零基础到入门 ☀️| 基础知识入门篇章,看完就可以做游戏啦! | 寻找C站宝藏

Unity入门基础知识。本篇文章介绍了关于Unity入门的一些基础知识,包括基本概念和使用实例。简单易上手,轻松实现Unity入门操作!

努力前行,总会成为自己心中的那道光 1万+

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

【ACM】杭电OJ 1003。

运行环境VS2017  题目链接:杭电OJ 1003 主要思想是: 用d[i]来存放前i项中最大的和,得到end,然后再倒推,得起始的位置begin 然而在程序42行的疑问,大家可以讨论一下吗???? #include &lt;stdio.h&gt; #include &lt;string.h&gt; int a[100000 + 11]; int d[100000 + 11]; in...

( :3 ) 560

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

杭电OJ1003 1004

杭电OJ1003 Max Sum 大意: 算几个数的连续子序列的最大值,这让人想到了dp的连续不下降子序列,虽然两个并没什么大的关系。 几个数相加的最大值,算和,从起点为第一个数算起,一直相加到后面,令最大值mmax等于一个很小的数,让mmax和相加的数作比较,当相加的数大于mmax时,进行值的替换,和前后下标数的改变。 当相加的数和小于0时,我们就知道了和小于0,则再往后即使会往大走也...

云纹铜禁的博客 243

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

杭电oj 1003题解答

杭电oj1003 这题需要利用动态规划来解决,也可能会考到数组越界的问题。不用想太复杂,就是求出每个子序列的值然后与之前的最大值比较大小(当然前子序列为负值则把清为零),最终运行出来的就是最大值。

2301_82192658的博客 576

杭电OJ 1003

刚拿到题目觉得很简单:用一个数组保存每组输入的序列,然后两层遍。第一层按照起始位置遍历,第二层按照结束位置遍历。代码如下: //杭电OJ 1003 张艺川 2018/1/27 #include using namespace std; int main(){ int T;//T组数据,最多20组 cin >> T; int maxSum[20]; //用于存每一组的最大和 最多20组

zhangyichuan_dlut的博客 3201

【杭电OJ】1003.Max Sum <贪心>

【杭电OJ】1003.Max Sum

学习笔记 401

【杭电oj】1003 - Max Sum(最大子序列的和)

Max Sum Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 200098    Accepted Submission(s): 46774 Problem Description Given a sequenc

wyg1997 1241

杭电oj1003 - MAX SUM & LeedCode #53 最大子数组和

一、杭电oj1003 - MAX SUM Problem Description Given a sequence a[1],a[2],a[3]…a[n], your job is to calculate the max sum of a sub-sequence. For example, given (6,-1,5,4,-7), the max sum in this sequence is 6 + (-1) + 5 + 4 = 14. Input The first line of the inpu

小f要努力啦的博客 1504

Max Sum(杭电OJ1003)解题报告

Max Sum   Problem Description Given a sequence a[1],a[2],a[3]......a[n], your job is to calculate the max sum of a sub-sequence. For example, given (6,-1,5,4,-7), the max sum in this sequence i

xxm137164869的专栏 6136

杭电oj 1003

  先看题目 Max Sum Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 190877    Accepted Submission(s): 44442 Problem Description Giv

u011488028的博客 3138
上一篇: 杭电OJ---1002
下一篇: 编译原理---递归下降法---文法设计---LL(1)
ARTELE
博客等级 码龄12年 148粉丝 149原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值