ACM-DP
ganzibang
NLP Lover && Back-end enthusiast
展开
-
HDU1559最大子矩阵
题目链接:HDU1559 求最大子矩阵,其实挺简单的,我觉得直接看代码也能看懂这个意思。#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<queue> #include<stack> #include<vector> #include<cmath> #include<map> #in原创 2017-09-13 20:27:35 · 255 阅读 · 0 评论 -
51nod1051_DP求最大子矩阵
题目链接:最大子矩阵和 题目描述当所有数都为负数时输出0,意味着除了都为0的情况,总存在一个数>=0,即结果一定>=0,所以当中间结果tmp<0时,后面加它都必然使得结果更小,意味着上面的段不用,tmp置为0,从下一段重新开始寻找可能的最大值。转化为最大子段和求解。#include<cstdio> #include<cstring> #include<iostream> #include<algo原创 2017-09-13 22:10:19 · 185 阅读 · 0 评论 -
2017 ACM/ICPC Asia Regional Shenyang Online 1004 array array array 最长上升子序列(板子可以更新啦,复杂度nlog2(n))
题目链接:array array array 题意:从给定n个元素的数组中删除k个元素,如果剩下的数组元素是一个非递增序列或者是一个非递减序列,则输出“A is a magic array.”,否则,输出“A is not a magic array.” 思路:等于求至少得删除几个元素使得原序列要么是个递增序列,要么是个递减序列,它等于 (n - max(最长递增子序列长度,最长递减子序列长度)原创 2017-09-11 21:06:14 · 221 阅读 · 0 评论 -
Codeforces Round #439 C.The Intriguing Obsession(DP + 思维)
题目链接:The Intriguing Obsession 题意:有红,蓝,紫三种颜色的点,数量分别为a,b,c。要求合法地在这a+b+c个点中给点对增加连线,连线的数目随意(可以连多条,可以连一条,可以不连),连线后得到一个合法的图,问合法的图可以有多少种。(图合法的要求是:相同颜色的点的路径必须>=3) 思路:先明确合法图不能出现形如A-A,A-B-A的连接方式,形如A,A-B,A-B-C,原创 2017-10-07 16:41:48 · 206 阅读 · 0 评论 -
2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 L.The Heaviest Non-decreasing Subsequence Problem 权值最大的最长带权非递减子序列
题目链接:The Heaviest Non-decreasing Subsequence Problem 思路:因为是找非递减子序列,所以如果数b的权值是a,可以当成a个数b连续排列在数组中。然后找最长非递减子序列的长度即可,下列代码LNDS()函数也可以作为最长非递减子序列的模板使用,时间复杂度nlog2(n)。#include <iostream> #include <cstdio> #inc原创 2017-10-03 17:39:15 · 18876 阅读 · 0 评论 -
2017 ACM-ICPC 亚洲区(北京赛区)网络赛C.Matrix (DP)
题目链接:hihocoder 1580 题意:给出n*m矩阵和p,要求修改其中一点的值为输入的p,再求最大子矩阵。 思路:参考http://blog.csdn.net/luricheng/article/details/78074046我们考虑没有p时,求最大子矩阵和: 对sum[i]求一遍最大字段和即可得到最大子矩阵(i表示第i列),O(n^3)。当要求修改其中一个值为p,再求最大子矩阵和,原创 2017-10-05 15:32:04 · 499 阅读 · 0 评论 -
Codeforces Round #436 E.Fire(01背包 + 输出路径)
题目链接:Fire#include <iostream> #include <cstdio> #include <fstream> #include <algorithm> #include <cmath> #include <deque> #include <vector> #include <queue> #include <string> #include <cstring> #include原创 2017-10-11 21:04:44 · 204 阅读 · 0 评论 -
Codeforces Round #442(Div.2) B.Nikita and string(线性DP)
题目链接:Nikita and string 题意:给出一个长度<=5000的a-b串,允许移除串的某些字符,其他字符的相对位置不变,使得串能被切割成三个子串S1,S2,S3,满足S1、S3只含字符a或者为空,S2只含字符b或者为空。问移除字符过后的串的长度最大为几? 题解:我采用DP做法,目标求长度最长,在满足要求的条件下。设置状态:开大小为dp[5010][3]的数组,dp[i][0]表示第原创 2017-11-01 10:49:26 · 324 阅读 · 1 评论