题目描述: 找出一个序列中乘积最大的连续子序列(至少包含一个数)。 样例: 比如, 序列 [2,3,-2,4] 中乘积最大的子序列为 [2,3] ,其乘积为6。 第一种解法,同最大和子序列的暴力求解法,直接求出每个子序列的乘积,取最大值。 1 public class Solution { 2 /* ...
分类:
其他好文 时间:
2016-04-06 21:28:10
阅读次数:
119
Description 给出1~n的一个排列,统计该排列有多少个长度为奇数的连续子序列的中位数是b。中位数是指把所有元素从小到大排列后,位于中间的数。 Input 第一行为两个正整数n和b ,第二行为1~n 的排列。 Output 输出一个整数,即中位数为b的连续子序列个数。 Sample Inpu ...
分类:
其他好文 时间:
2016-04-04 01:23:25
阅读次数:
179
Description Edward 得到了一个长度为 N 的整数序列,他想找出这里面有多少个“幸运的”连续子序列。一个连续子序列被称为“幸运的”,当且仅当该子序列内的整数之和恰好是 K 的整数倍数。他请求你写一个程序来计算他喜欢的连续子序列个数. Edward 得到了一个长度为 N 的整数序列,他 ...
分类:
其他好文 时间:
2016-04-03 20:20:06
阅读次数:
269
A 最大连续子序列和 问题描述: 思路:只要从1到n扫一遍,不断累加,出现负值就置为0,不断维护最大值即可。 注意:序列全为负数的情况和a,b的选取。 掌握:一般看到题目的数据范围,就可以排除掉一些复杂度明显爆炸的做法。 代码: #include<stdio.h> int main() { int ...
分类:
其他好文 时间:
2016-03-31 14:33:34
阅读次数:
191
题目大概是给一棵n个结点边带权的树,记结点i到其他结点最远距离为d[i],问d数组构成的这个序列中满足其中最大值与最小值的差不超过m的连续子序列最长是多长。 各个结点到其他结点的最远距离可以用树形DP解决,HDU2196。 而那个最长的连续子序列可以用单调队列求。。搞了挺久看了解法体会了下。。简单来
分类:
其他好文 时间:
2016-03-23 19:55:00
阅读次数:
194
首先如果一段连续子序列里没有任何幸运数,那么显然可以缩成一个点。 设幸运数个数为$m$,那么现在序列长度是$O(m)$的,考虑暴力枚举$R_1$,然后从右往左枚举$L_1$。 每次碰到一个幸运数,就将它删去,维护出被删的数它左边右边连续能到的位置,然后用组合数计算贡献。 考虑给每个被删数字一个删除时
分类:
其他好文 时间:
2016-03-19 01:01:31
阅读次数:
264
今天软件工程课的时候,老师举个例子,最大的连续子序列的问题,自己在在脑中,想起来了在ACM中做过的题, 简要说一下思路:动态规划,找到状态转移方程是关键。定义两个数组a[],b[],一个存自己输入的数组,一个用来存连续和的值。状态转移方程:b[i]=max{b[i-1]+a[i],a[i]},找出最
分类:
其他好文 时间:
2016-03-11 22:15:04
阅读次数:
228
动态规划求最大连续子序列: 思想: 1、如果在array[1,N]中存在最大连续子序列array[i,j],那么对于任何的k(i<=k<=j)均有array[i,k]大于0。假设array[i,k]小于0,由条件知array[i,j]为最大连续子序列,且由等式array[i,k](小于0)+arra
分类:
其他好文 时间:
2016-03-10 09:23:07
阅读次数:
189
HDU 1087 题目大意:给定一个序列,只能走比当前位置大的位置,不可回头,求能得到的和的最大值。(其实就是求最大上升(可不连续)子序列和) 解题思路:可以定义状态dp[i]表示以a[i]为结尾的上升子序列的和的最大值,那么便可以得到状态转移方程 dp[i] = max(dp[i], dp[j]+
分类:
其他好文 时间:
2016-03-07 01:22:42
阅读次数:
164
HDU 1231 题目大意以及解题思路见: HDU 1003题解,此题和HDU 1003只是记录的信息不同,处理完全相同。 /* HDU 1231 最大连续子序列 --- 入门DP */ #include <cstdio> #include <cstring> int dp[10005]; int
分类:
其他好文 时间:
2016-02-19 01:36:38
阅读次数:
264