专题三 第十一题

1.题目编号:1001

2.简单题意:给一个序列a[1],a[2]...a[n],计算该序列的最长子序列的最大值,但是如果有超过一个子序列的,选择第一个子序列。

3.解题思路形成过程:看到这个题,就是用动态规划求最大子序列,开始用的方法一直超时,嵩哥说我写的太麻烦,应该用老师上课讲的,输入的n个数相加放在一个sum数组里面,如果sum[i-1]+a[i]的值为负的就将sum[i]=a[i],否则与a[i]相加之后放入sum[i]中,另外这个题需要记录字段的开始位置和结束位置,可以用个tag数组将是一个字段的第一个位置放在tag中,而tag的下标可以知道结束位置。

4.感悟:哈哈,人多力量大啊,提交了不下10遍的程序终于AC了,多谢嵩哥的指导,虽然过程非常坎坷,但是最终AC了,感觉自己萌萌哒~其中我把记录开始位置的放在了循环里面,结果就出错了,如5 1 2 -4 3 2初始位置还为1 还忘了q在再循环的时候应该置1,否则前面是后面的数max为第一个数但是前一个循环的结束位置不为1,则这次的就错误。

5.AC的代码:

#include<iostream>

#include<string.h>

using namespace std;

int main(){

//freopen("1.txt","r",stdin);

int T,n,q,a[100002]={0},tag[100003],t,sum[100003]={0},max,c=0;

cin>>T;

while(T--){

q=1;

cin>>n;

t=1;

for (int i=1;i<=n;i++){

cin>>a[i];

if(sum[i-1]>=0){

sum[i]=sum[i-1]+a[i];

tag[i]=t;

}

else{

sum[i]=a[i];

tag[i]=i;

t=0+i;

}

}

max=sum[1];

for (int j=2;j<=n;j++){

if (max<sum[j]){

max=sum[j];

q=j;

}

}

c++;

cout<<"Case "<<c<<":"<<endl;

cout<<max<<" "<<tag[q]<<" "<<q<<endl;

if (T!=0){

cout<<endl;

}

}

return 0;

}

原题:

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.<br>

Input

The first line of the input contains an integer T(1<=T<=20) which means the number of test cases. Then T lines follow, each line starts with a number N(1<=N<=100000), then N integers followed(all the integers are between -1000 and
1000).<br>

Output

For each test case, you should output two lines. The first line is "Case #:", # means the number of the test case. The second line contains three integers, the Max Sum in the sequence, the start position of the sub-sequence, the end
position of the sub-sequence. If there are more than one result, output the first one. Output a blank line between two cases.<br>

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



时间: 2024-11-08 22:45:04

专题三 第十一题的相关文章

zabbix专题:第十一章 zabbix proxy分布式监控配置

zabbix专题:第十一章 zabbix proxy分布式监控配置             对Linux有兴趣的朋友加入QQ群:476794643 在线交流 本文防盗链:http://zhang789.blog.51cto.co zabbix proxy分布式监控配置 zabbix proxy可以代替zabbix server检索客户端的数据,然后把数据汇报给zabbix server,并且在一定程度上分担了zabbix server的压力.zabbix proxy可以非常简便的实现了集中式.分

分析Linux磁盘管理与文件系统专题三

1.前言 紧接着我的上一篇博客进行磁盘管理操作: http://zhangfengzhe.blog.51cto.com/8855103/1430531 我们已经对磁盘进行了分区,信息如下: [[email protected] ~]# fdisk -l /dev/sdb Disk /dev/sdb: 1073 MB, 1073741824 bytes 255 heads, 63 sectors/track, 130 cylinders Units = cylinders of 16065 * 5

[C# 网络编程系列]专题三:自定义Web服务器

转自:http://www.cnblogs.com/zhili/archive/2012/08/23/2652460.html 前言: 经过前面的专题中对网络层协议和HTTP协议的简单介绍相信大家对网络中的协议有了大致的了解的, 本专题将针对HTTP协议定义一个Web服务器,我们平常浏览网页通过在浏览器中输入一个网址就可以看到我们想要的网页,这个过程中浏览器只是一个客户端,浏览器(应用层应用程序)通过HTTP协议把用户请求发送到服务端, 服务器接受到发送来的HTTP请求,然后对请求进行处理和响应

三个 编程题 :1. 回文 2. 将字符串t连接到字符串s的尾部

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86

【Linux探索之旅】第三部分测验题

内容简介 1.第三部分测验题 2.第四部分第一课:压缩文件,解压无压力 第三部分测验题 wc命令做不到以下哪一项? A. 统计单词数 B. 统计行数 C. 为文件内容排序 用grep命令搜索文本,何时需要用双引号包裹搜索的关键字? A. 关键字超过10个字符 B. 关键字是正则表达式 C. 关键字包含空格 重定向符号>>,在文件不存在时,会创建文件吗? A. 会 B. 不会 2>&1表示什么? A. 使标准错误输出与标准输出重定向到同一个地方 B. 将标准错误输出重定向到文件 C

第三百四十一节,Python分布式爬虫打造搜索引擎Scrapy精讲—编写spiders爬虫文件循环抓取内容—

第三百四十一节,Python分布式爬虫打造搜索引擎Scrapy精讲-编写spiders爬虫文件循环抓取内容- 编写spiders爬虫文件循环抓取内容 Request()方法,将指定的url地址添加到下载器下载页面,两个必须参数, 参数: url='url' callback=页面处理函数 使用时需要yield Request() parse.urljoin()方法,是urllib库下的方法,是自动url拼接,如果第二个参数的url地址是相对路径会自动与第一个参数拼接 # -*- coding:

UI标签库专题三:JEECG智能开发平台 FormValidation(表单提交及验证标签)

?? 1. FormValidation(表单提交及验证标签) 1.1.  参数 属性名 类型 描述 是否必须 默认值 action string 表单提交路径 否 null formid string 表单唯一标示 是 formobj refresh boolean dialog为true时是否刷新父页面 否 true callback string 表单提交完成后的回调函数 否 null beforeSubmit string 表单提交前的处理函数 否 null btnsub string

经典算法题每日演练——第二十一题 十字链表

原文:经典算法题每日演练--第二十一题 十字链表 上一篇我们看了矩阵的顺序存储,这篇我们再看看一种链式存储方法“十字链表”,当然目的都是一样,压缩空间. 一:概念 既然要用链表节点来模拟矩阵中的非零元素,肯定需要如下5个元素(row,col,val,down,right),其中: row:矩阵中的行. col:矩阵中的列. val:矩阵中的值. right:指向右侧的一个非零元素. down:指向下侧的一个非零元素. 现在我们知道单个节点该如何表示了,那么矩阵中同行的非零元素的表示不就是一个单链

第二单元练习 第一题和第十一题

第一题 animal类 class Animal    {        private bool m_sex;        private int m_age;        public bool Sex        {            get { return m_sex; }            set { m_sex = value; }        }        public int Age        {            get { return m_ag