hdu 1003(详解) java
算法分析:
一列数 a[0],a[1],……a[i]……
定义数组b[0],b[1,]……b[i]……
***b[i]为i之前的任意位置到i的最大连续和!!!
b[i]=max{b[i-1]+a[i],a[i]}
package Main; import java.util.Scanner; public class Main {
public static void main(String[] args)
{
int _case,n,i;
int []a=new int [100100];
int []b=new int [100100];//dp
int []c=new int [100100];//记录下标
Scanner cin=new Scanner(System.in);
_case=cin.nextInt();
int js=0;
while(_case-->0)
{
js++;
n=cin.nextInt();
for(i=0;i<n;i++)
{
a[i]=cin.nextInt();
}
b[0]=a[0];
c[0]=0;
for(i=1;i<n;i++)
{
if(b[i-1]+a[i]<a[i])
{
b[i]=a[i];
c[i]=i;
}
else
{
b[i]=b[i-1]+a[i];
c[i]=c[i-1];
}
}
int ed=0;
int max=b[0];
for(i=1;i<n;i++)
{
if(max<b[i])
{
max=b[i];
ed=i;
}
}
System.out.println("Case "+js+":");
System.out.println(max+" "+(c[ed]+1)+" "+(ed+1));
if(_case>0)System.out.println();
}
}
}
注意输出格式, Output a blank line between two cases.
#include<stdio.h>
int a[];
int b[];
int c[];
int main()
{
int _case,n,i;
scanf("%d",&_case);
int js=;
while(_case--)
{
js++;
scanf("%d",&n);
for(i=;i<n;i++)
scanf("%d",&a[i]);
b[]=a[];
c[]=;
for(i=;i<n;i++)
{
if(b[i-]+a[i]<a[i])
{
c[i]=i;
b[i]=a[i];
}
else
{
c[i]=c[i-];
b[i]=b[i-]+a[i];
}
}
int ed=,max=b[];
for(i=;i<n;i++)
{
if(max<b[i])
{
max=b[i];
ed=i;
}
}
printf("Case %d:\n",js);
printf("%d %d %d\n",max,c[ed]+,ed+);
if(_case>)printf("\n");
}
return ;
}
hdu 1003(详解) java的更多相关文章
- 详解Java GC的工作原理+Minor GC、FullGC
详解Java GC的工作原理+Minor GC.FullGC 引用地址:http://www.blogjava.net/ldwblog/archive/2013/07/24/401919.html J ...
- Protocol Buffer技术详解(Java实例)
Protocol Buffer技术详解(Java实例) 该篇Blog和上一篇(C++实例)基本相同,只是面向于我们团队中的Java工程师,毕竟我们项目的前端部分是基于Android开发的,而且我们研发 ...
- 详解Java中的clone方法
详解Java中的clone方法 参考:http://blog.csdn.net/zhangjg_blog/article/details/18369201/ 所谓的复制对象,首先要分配一个和源对象同样 ...
- java基础(十五)----- Java 最全异常详解 ——Java高级开发必须懂的
本文将详解java中的异常和异常处理机制 异常简介 什么是异常? 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常. Java异常的分类和类结构图 1.Java中的所 ...
- 异常处理器详解 Java多线程异常处理机制 多线程中篇(四)
在Thread中有异常处理器相关的方法 在ThreadGroup中也有相关的异常处理方法 示例 未检查异常 对于未检查异常,将会直接宕掉,主线程则继续运行,程序会继续运行 在主线程中能不能捕获呢? 我 ...
- 第三节:带你详解Java的操作符,控制流程以及数组
前言 大家好,给大家带来带你详解Java的操作符,控制流程以及数组的概述,希望你们喜欢 操作符 算数操作符 一般的 +,-,*,/,还有两个自增 自减 ,以及一个取模 % 操作符. 这里的操作算法,一 ...
- 第十八节:详解Java抽象类和接口的区别
前言 对于面向对象编程来说,抽象是它的特征之一. 在Java中,实现抽象的机制分两种,一为抽象类,二为接口. 抽象类为abstract class,接口为Interface. 今天来学习一下Java中 ...
- 详解java动态代理机制以及使用场景
详解java动态代理机制以及使用场景 https://blog.csdn.net/u011784767/article/details/78281384 深入理解java动态代理的实现机制 https ...
- 【转帖】windows命令行中java和javac、javap使用详解(java编译命令)
windows命令行中java和javac.javap使用详解(java编译命令) 更新时间:2014年03月23日 11:53:15 作者: 我要评论 http://www.jb51.ne ...
随机推荐
- Android Material Design的FloatingActionButton,Snackbar和CoordinatorLayout
如果是为了兼容低版本的Android系统,则需要引用Android Material Design的扩展支持库,我在之前的一篇文章张,较为详细的说明了如何导入Android Material Desi ...
- Delphi XE5教程4:程序和单元概述
内容源自Delphi XE5 UPDATE 2官方帮助<Delphi Reference>,本人水平有限,欢迎各位高人修正相关错误!也欢迎各位加入到Delphi学习资料汉化中来,有兴趣者可 ...
- Linq--扩展方法
如果现在有一个这样的需求,求筛选出来的大于20MB的进程的和,常用的方法是写一个静态方法传进去一个ProcessData列表 比如: public static Int64 TotalMemory( ...
- 【转】Web标准中的常见问题
本文转自http://www.tracefact.net/Misc/Common-Problems-Of-Web-Standard.aspx 引言 大概在2004年的时候,Web标准的概念藉由一本名为 ...
- zendframework 事件管理(二)
首先需要明确的几个问题: Q1.什么是事件? A:事件就是一个有名字的行为.当这个行为发生的时候,称这个事件被触发. Q2.监听器又是什么? A:监听器决定了事件的逻辑表达,由事件触发.监听器和事件往 ...
- 管道和FIFO
pipe 子进程从终端读取一个文件名, 通过管道将文件名传递给父进程 父进程收到文件名后, 读取文件内容并通过管道传递给子进程 子进程接收到文件内容并输出到终端 #include <stdio. ...
- 为什么C/C++语言使用指针
这是参加面试时,面试官问的一道开放性题目. 问题是:为什么C/C++语言使用指针? 这个问题一问出来,直接被面试官秒杀了,面试官大神,你怎么不按套路出牌啊? 说好的malloc和new的区别呢?说好的 ...
- hg211g破解获取管理员密码,可以连接路由器。默认光猫来拨号。
先通过这种方式获取telecomadmin密码:1.使用useradmin用户登录设备2.在IE地址栏输入该路径”192.168.1.1/backupsettings.html”3.点击保存设备备份配 ...
- c#之反射总结
1.了解什么事程序集 2.加载程序集 首先要加载需要加载的程序集,然后找到指定的类型,进而往下进行动态加载. 要加载的程序集中的内容: public class Class1:Person { pr ...
- android 设置叠加父级响应点击事件
最近做android项目时,需要让button的后面的relatelayout可以点击,但是虽然把button设置成了focusable="false",relatelayout中 ...