hdu 1003 Max Sum(动态规划)

解题思路:
本题在给定的集合中找到最大的子集合【子集合:集合的元素的总和,是所有子集合中的最大解。】
结果输出: 最大的子集合的所有元素的和,子集合在集合中的范围区间.
依次对元素相加,存到一个 sum 中,同时ans=sum;定义左右边界 left,right;临时左边界ll=1;
如果sum>ans,则ans=sum; 左边界 left=tem; right=i+1;
如果sum<0,则sum=0; tem=i+2;
Ac code:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int t,a,sum,ans,l,r,x,ll;
scanf("%d",&t);
for(int k=; k<=t; k++)
{
sum=;ans=-;ll=;
scanf("%d",&x);
for(int i=; i<x; i++)
{
scanf("%d",&a);sum+=a;
if(sum>ans)
{ans=sum;l=ll;r=i+;}
if(sum<)
{sum=;ll=i+;}
}
printf("Case %d:\n%d %d %d\n",k,ans,l,r);
if(k!=t)printf("\n");
}
return ;
}
简单DP: 2017.03.29
#include<stdio.h>
#include<algorithm>
#include<string.h>
using namespace std;
#define N 100005
int dp[N];
int a[N];
int main()
{
int t;
while(scanf("%d",&t)!=EOF)
{
int c=,T=t;
while(t--)
{
memset(dp,,N);
int n;
scanf("%d",&n);
for(int i=; i<=n; i++)
scanf("%d",&a[i]);
dp[]=a[];
for(int j=; j<=n; j++)
dp[j]=max(dp[j-]+a[j],a[j]); int mx=-;
int st=,en=;
for(int i=; i<=n; i++)
if(mx<dp[i])
{
mx=dp[i];
en=i;
}
st=en;
int sum=;
for(int i=en; i>=; i--)
{
sum+=a[i];
if(sum==mx)
st=i;
}
printf("Case %d:\n%d %d %d\n",c,mx,st,en);
if(c!=T)printf("\n");
c+=;
}
}
return ;
}
hdu 1003 Max Sum(动态规划)的更多相关文章
- HDU 1003 Max Sum (动态规划 最大区间和)
Max Sum Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Sub ...
- HDOJ(HDU).1003 Max Sum (DP)
HDOJ(HDU).1003 Max Sum (DP) 点我挑战题目 算法学习-–动态规划初探 题意分析 给出一段数字序列,求出最大连续子段和.典型的动态规划问题. 用数组a表示存储的数字序列,sum ...
- HDU 1003 Max Sum --- 经典DP
HDU 1003 相关链接 HDU 1231题解 题目大意:给定序列个数n及n个数,求该序列的最大连续子序列的和,要求输出最大连续子序列的和以及子序列的首位位置 解题思路:经典DP,可以定义 ...
- hdu 1003 Max Sum (DP)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1003 Max Sum Time Limit: 2000/1000 MS (Java/Others) ...
- HDU 1003 Max Sum【动态规划求最大子序列和详解 】
Max Sum Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Sub ...
- hdu 1003 Max Sum (动态规划)
转载于acm之家http://www.acmerblog.com/hdu-1003-Max-Sum-1258.html Max Sum Time Limit: 2000/1000 MS (Java/O ...
- hdu 1003 MAX SUM 简单的dp,测试样例之间输出空行
测试样例之间输出空行,if(t>0) cout<<endl; 这样出最后一组测试样例之外,其它么每组测试样例之后都会输出一个空行. dp[i]表示以a[i]结尾的最大值,则:dp[i ...
- HDU 1003 Max Sum
Max Sum Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Sub ...
- HDU 1003 Max Sum (动规)
Max Sum Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Su ...
随机推荐
- Camera中对焦模式总结
1,相机对焦模式有以下几种: auto //自动 infinity //无穷远 macro //微距 continuous-picture //持续对焦 fixed //固定焦距 2,常见对焦模 ...
- 找不到类型{0} 它在 ServiceHost 指令中提供为 Service 特性值
由于我把binding改成wsHttpBinding,在web.config里也改了命名空间 services的类名也改成了跟 web.config对应的命名空间后 在添加引用后,出现了错误: “找不 ...
- XPath 详解,总结
XPath简介 XPath是W3C的一个标准.它最主要的目的是为了在XML1.0或XML1.1文档节点树中定位节点所设计.目前有XPath1.0和XPath2.0两个版本.其中Xpath1.0是199 ...
- C++系列: 如何将十六机制的字符串转成整数
bool convertHexStringToInt(char* pstrHex, unsigned long* pResult) { ) return false; else return true ...
- Linux第八次学习笔记
系统级I/O 输入/输出(I/O)是在主存和外部设备之间拷贝数据的过程. 输入操作是从I/O设备拷贝数据到主存. I/O→主存 输出操作是从主存拷贝数据到I/O设备. 主存→I/O Unix I/O ...
- Cannot Change Opencv Webcam Setting
I have encountered a problem that when I use opencv API, I cannot change the width and height of Web ...
- Opencv step by step - 鼠标事件
鼠标事件有下面几种(没有滚轮事件,比较遗憾): #define CV_EVENT_MOUSEMOVE 0 滑动 #define CV_EVENT_LBUTTONDOWN 1 左键点击 #define ...
- 5.HBase In Action 第一章-HBase简介(1.1.3 HBase的兴起)
Pretend that you're working on an open source project for searching the web by crawling websites and ...
- 『开源』Slithice 2013 服务器集群 设计和源码
相关介绍文章: <『设计』Slithice 分布式架构设计-支持一体式开发,分布式发布> <『集群』001 Slithice 服务器集群 概述> <『集群』002 Sli ...
- [工具类]将时间转换为unix时间戳格式
写在前面 由于在数据库中存的时间有时间戳格式的数据,在解析以及保存的时候,就需要考虑到数据格式的兼容性问题.看到数据库中的时间字段基本上都是以时间戳格式存储的,没办法,只能将时间进行转换了,考虑到其他 ...