杭电oj1003java实现

简介: 给定序列a [1],a [2],a [3] … a [n],您的工作是计算子序列的最大和。 例如,给定(6,-1,5,4,-7),此序列中的最大和为6 (-1) 5 4 = 14。

问题描述



给定序列a [1],a [2],a [3] … a [n],您的工作是计算子序列的最大和。 例如,给定(6,-1,5,4,-7),此序列中的最大和为6 (-1) 5 4 = 14。


输入


输入的第一行包含一个整数T(1 <= T <= 20),这意味着测试用例的数量。 然后是T行,每行以数字N开头(1 <= N <= 100000),然后是N个整数(所有整数都在-1000和1000之间)。


产量


对于每个测试用例,你应该输出两行。 第一行是“Case#:”,#表示测试用例的编号。 第二行包含三个整数,序列中的最大和,子序列的起始位置,子序列的结束位置。 如果有多个结果,则输出第一个结果。 在两种情况之间输出一个空行。


示例输入


2

5 6 -1 5 4 -7

7 0 6 -1 1 -6 7 -5


示例输出


Case 1:

14 1 4


Case 2:

7 1 6


分析


求最大子序列问题。核心就是先算出每一个以第i个元素结尾的最大序列。这个以第i个结尾的最大序列有两种可能,第一,以i-1个结尾的最大序列加上第i个元素,或者是第i个元素本身,要判断大小,在确定值的时候 顺便确定头和尾。在从i个中找出最大序列。详细看代码。


import java.util.Scanner;
public class 杭电1003dp {
  public static void main(String[] args)
 {
   Scanner sc=new Scanner(System.in);
   int t=sc.nextInt();
   int c[][]=new int [t][3];
   for(int q=0;qdp[i-1] a[i]) {start=i;}//如果当前节点大,头信息更改
       if(dp[i]>dpmax) {valuestart=start;valuend=end;dpmax=dp[i];}//一定要有等于号
     }
     c[q][0]=dpmax;//储存结果
     c[q][1]=1 valuestart;
     c[q][2]=valuend 1; 
   }
   for(int i=0;ij?i:j;
  }
}
目录
相关文章
|
5月前
|
Java
杭电 OJ 1010-1019 Java解法(未更新完毕)
杭电 OJ 1010-1019 Java解法(未更新完毕)
27 1
|
5月前
|
Java
杭电acm1201 18岁生日 Java解法 时间类
杭电acm1201 18岁生日 Java解法 时间类
25 0
|
5月前
|
算法 Java
杭电 OJ 1000-1009 Java解法
杭电 OJ 1000-1009 Java解法
22 0
|
5月前
|
Java
杭电acm2018 母牛的故事 Java解法 经典递归
杭电acm2018 母牛的故事 Java解法 经典递归
24 0
|
5月前
|
Java BI
杭电acm1013 Digital Roots 数字根 Java解法 高精度
杭电acm1013 Digital Roots 数字根 Java解法 高精度
28 0
|
Java
杭电6318(归并排序)逆序数(java)
归并排序是采用分冶实现的,其核心思想就是分冶得到两边经过递归是有序的,(因为分到最后就是两个元素的比较。
92 0
杭电1280java实现
还记得Gardon给小希布置的那个作业么?(上次比赛的1005)其实小希已经找回了原来的那张数表,现在她想确认一下她的答案是否正确,但是整个的答案是很庞大的表,小希只想让你把答案中最大的M个数告诉她就可以了。
78 0
|
Java
杭电1018java(斯特林公式)
In many applications very large integers numbers are required. Some of these applications are using keys for secure transmission of data, encryption, etc. In this problem you are given a number, you have to determine the number of digits in the factorial of the number.
64 0
|
测试技术 定位技术
杭电1044java实现dfs bfs
它写在“夫人的书:创世之后,残酷的神摩洛克反抗了造物主马尔杜克的权威。摩尔从马尔杜克那里偷走了众神中所有神器中最强大的一件,也就是叶多尔的护身符,并且他隐藏了它在Gehennom的阴暗洞穴,现在潜伏在他身边的Under World,并且是他的时间。
90 0
|
Java
杭电1043java实现bfs一遍
这个15难题已经存在了100多年了,即使你不知道它的名字,你也看到了。它由15个滑动瓦片构成,每个滑动瓦片的数量从1到15,并且全部装入4乘4帧,缺少一个瓦片。
81 0