hdu1003 Max Sum
来源:互联网 发布:idownload mac 编辑:程序博客网 时间:2024/06/05 01:40
大概题意:含有N(小等于100000)个整数的序列,整数范围在[-1000,1000]。求连续子序列中数字和最大的一个序列,并输出起始位置(有多个位置,输出最先出现一个)。
解题思路:
d[i]表示到第i个数字时包含数字i的最大序列和
a[i]表示第i个数字
mx表示最大序列和
l表示起点
r表示终点
iL表示计算第i个数字和最大序列时,从左算起到i-1,连续序列和不为负数的第一个数的位置
如:
序列 1 -2 2 -2 -1 3 5
iL 1(自身) 1 3(自身) 3 3 6(自身) 6
首先最大数字和序列:
递推公式:d[i] = a[i] + max(0, d[i-1]);
max(0, d[i-1])意义:如果前一个最大序列小于0的话,加上a[i]会使和变小,所以不要加入
起始位置:
结束位置递推 r = d[i] > mx ? i : r;
开始位置递推 iL = d[i-1] < 0 ? i : iL; l = d[i] > mx ? iL : l;
0 0
- HDU1003 MAX SUM
- hdu1003 Max Sum
- HDU1003 Max Sum
- HDU1003: Max Sum
- HDU1003 Max Sum
- hdu1003 Max Sum
- hdu1003 Max Sum
- HDU1003 Max Sum
- HDU1003:Max Sum
- HDU1003-Max Sum
- HDU1003 Max Sum【DP】
- HDU1003 Max Sum
- hdu1003 Max Sum
- hdu1003 Max Sum
- 【HDU1003】【Max Sum】
- HDU1003---Max Sum
- HDU1003 Max Sum
- hdu1003 Max Sum
- UFLDL——Exercise: Convolution and Pooling 卷积和池化
- mapreduce中计数器的使用
- Java基础----Properties
- Java:使用Executors创建和管理线程
- 99手机管家项目的总结
- hdu1003 Max Sum
- 【段落梗概】【失控】第二章 蜂群思维 (二)
- C#调用C、C++的DLL
- Java基础(数组-内存空间的划分)
- AndroidStudio中使用Git做版本控制
- qml 国际化2
- 在Ubuntu下交换Esc和Caps Lock按键
- js类式继承的实现
- 以布局文件设置View类自定属性的问题