动态规划与贪心相关:{POJ}{2479}{Maximum Sum} (DP)摘要: 题意:给定n个数,求两段连续子列的最大和。思路:先从左向右dp,求出一段连续子列的最大和,再从右向左dp,求出两段连续子列的最大和,方法还是挺经典的。{POJ}{1036}{Gansters} (DP)摘要: 题意...
分类:
其他好文 时间:
2014-08-15 22:20:09
阅读次数:
309
思路:从左向右遍历数组元素相加求和得到和sum,若sum小于0,必然会对总的和有损耗,因此将sum重置为0,从当前位置继续重复上述过程,直到数组结束,与此同时设置max变量记录求和过程中遇到的最大值。
执行完上述过程,判断max等于0(max初值为0),若大于0,max为所求结果,返回max。
若仍然等于0说明求和过程中未出现过正数,数组中全是负数或0,此时数组最大和就是数组中最大的最...
分类:
其他好文 时间:
2014-08-13 15:01:56
阅读次数:
211
//本题用DP算法: 从一组数据中找一组递增数列且和为最大,假如我们从最后面往前找,每次都要找出前面比本身的小的数 ,//并加上f[j],就是此时f[j]最大的值//用f[ ]记下相应的位置的最大和,f[ i ]=max(num[ i ] ,f[ i ]+num[ j ] ),其中0num[ j ]...
分类:
其他好文 时间:
2014-08-12 13:19:24
阅读次数:
210
题意 吃豆子游戏 当你吃了一个格子的豆子 该格子左右两个和上下两行就不能吃了 输入每个格子的豆子数 求你最多能吃多少颗豆子
可以先求出每行你最多可以吃多少颗豆子 然后每行就压缩成只有一个格子了 里面的豆子数就是那一行最多可以吃的豆子数 然后问题就变成求一列最多可以吃多少颗豆子了 和处理每一行一样处理 那么问题就简化成求一行数字的最大不连续和问题了
令d[i]表示某一行前i个豆子的最大和 有两种情况 吃第i个格子中的豆子和不吃第i个格子中的豆子 a[i]为...
分类:
其他好文 时间:
2014-08-11 21:23:02
阅读次数:
333
假设有如下整数数组 -10 5 0 8 -1 10 -10 100 -1 求其最大的子序列和。从该数组我们可以知道其子序列和最大的序列为5 0 8 -1
10 -10 100且等于112。(为方便起见,如果数组全是负数则最大和为0)...
分类:
其他好文 时间:
2014-08-11 18:04:02
阅读次数:
243
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4902解题报告:输入一个序列,然后有q次操作,操作有两种,第一种是把区间 (l,r) 变成x,第二种是把区间 (l,r) 中大于x的数跟 x 做gcd操作。线段树区间更新的题目,每个节点保存一个最大和最小...
分类:
其他好文 时间:
2014-08-11 17:26:12
阅读次数:
238
题目描述:
HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天JOBDU测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。你会不会被他忽悠...
分类:
其他好文 时间:
2014-08-11 10:08:22
阅读次数:
170
题目链接
题意:n个司机,n个下午路线和n个夜间的行驶时间。每个司机恰好分配到一个下午路线和一个夜间路线。司机行驶如果超过规定的行驶总时间,每个单位时间要多付给司机r元,求最小要给所有司机的加班费。
思路:贪心,将两个时间段的行驶时间排序,然后依次取最大和最小相加减去规定时间。那么超过的时间将最小,加班费也会最小。
#include
#include
#include
#...
分类:
其他好文 时间:
2014-08-10 21:36:00
阅读次数:
284
AC得相当辛苦的一道题,似乎不难,但是需要想仔细,
开始的时候的错误思路----是受之前做过的区间最长连续子串影响http://blog.csdn.net/u011026968/article/details/38357157
区间合并的时候,我直接按照---如果(左子树的最大前缀和长度==左子树的长度 && 右子树的前缀和>0),就合并左前缀,这想法有两个错误:1、右子树的前缀和==0的时候...
分类:
其他好文 时间:
2014-08-10 18:45:10
阅读次数:
382
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3374题目大意:输出最大和最小的是从哪一位开始的,同时输出最小循环节的个数。这里简单介绍对字符串最小表示的方法:(1) 利用两个指针p1, p2。初始化时p1指向s[0], p2指向s[1]。(2) k ...
分类:
其他好文 时间:
2014-08-10 12:52:50
阅读次数:
244