摘要: 点击打开链接 题意: 给你一个01矩阵,行与行之间可以交换位置 然后问你构成构成最大的只含1的矩形的面积是多少 思路: 首先我们预处理一下 dp[j][i]表示第j列第i行往左边最远能延长多远 因为列是不会变的,所以我们对于每一列都排序(贪心?),然后利用dp的思想往下找 到dp[i][j]==0的 阅读全文
posted @ 2017-02-21 23:52 _yxg123 阅读(70) 评论(0) 推荐(0) 编辑
摘要: 点击打开链接 思路: dp[i][j]表示以第i行第j列元素为矩阵右下角所能得到的最大福字的大小。 对于这一个矩阵, dp[i][j]对于dp[i][j-1]来说属于竖向扩充。 同理,dp[i][j]对于dp[i-1][j]来说属于横向扩充。 所以 其他条件便只能由所在一个元素去构成一个福字矩阵了, 阅读全文
posted @ 2017-02-21 22:25 _yxg123 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 点击打开链接 题意: 给你一个括号序列,让你找到最长的连续的合法括号序列 然后让你输出这个括号序列的长度是多少 这么长的括号序列一共有多少个 思路: 看到括号匹配,就用stack来弄就好了 然后我们dp一下,表示以这个字符结尾的序列的长度是多少 dp[i] += dp[k.top()-1]; 从当前 阅读全文
posted @ 2017-02-21 21:40 _yxg123 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 点击打开链接 题意:给n个数,q次询问,(L,R)区间内的逆序数。 思路: 区间dp 代码一: 思路二: dp[i][j], 先求出每个i为起始位置的逆序数, dp[i][j] = dp[i][j-1]; 再移动i,求出任意(L,R)区间内的逆序数。 dp[i][j] = dp[i+1][j]; 代 阅读全文
posted @ 2017-02-21 20:32 _yxg123 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 点击打开链接 题意: 给你n个数,你每次可以选择删除去一个数x,但是等于x+1和等于x-1的数都得删去 你每一次操作可以得x分 思路一: dp[i]表示到i后能够得到的最大分数 dp[i]=max(dp[i-1],dp[i-2]+a[i]*i; 代码: 思路二: 用计数排序统计数字的个数 dp[ i 阅读全文
posted @ 2017-02-21 17:11 _yxg123 阅读(117) 评论(0) 推荐(0) 编辑