摘要: 题目给一个由几个相连接的矩形组成的多边形,计算多边形包含的最大的矩形的面积。 要求的矩形的高一定是某一个用来组合的矩形的高;如果枚举每个矩形作为高的话,那样长就是这个矩形能向左向右继续延伸矩形的长度了。 所以这题本质也是用单调栈在O(n)计算出每个数作为最小数向左和向右能延伸的最长距离。 1 #in 阅读全文
posted @ 2016-02-28 19:55 WABoss 阅读(931) 评论(0) 推荐(1) 编辑
摘要: 题意:给一个非负整数序列,求哪一段区间的权值最大,区间的权值=区间所有数的和×区间最小的数。 用单调非递减栈在O(n)计算出序列每个数作为最小值能向左和向右延伸到的位置,然后O(n)枚举每个数利用前缀和O(1)计算出以这个数为最小值能得到的最大的区间权。 以前写的单调栈,三个if分支,写得繁繁杂杂的 阅读全文
posted @ 2016-02-28 19:14 WABoss 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 题意:给n个字符串,求最长的子串,满足它或它的逆置出现在所有的n个字符串中。 把n个字符串及其它们的逆置拼接,中间用不同字符隔开,并记录suffix(i)是属于哪个字符串的; 跑后缀数组计算height; 二分答案,height分组,看组里面是否都包含了n个字符串的后缀; 注意n=1的情况。。 1 阅读全文
posted @ 2016-02-28 16:34 WABoss 阅读(238) 评论(0) 推荐(2) 编辑
摘要: 题意:有n个国家,贿赂它们都需要一定的代价,一个国家被贿赂了从属这个国家的国家也相当于被贿赂了,问贿赂至少k个国家的最少代价。 这些国家的从属关系形成一个森林,加个超级根连接,就是一棵树了,考虑用DP: dp[u][m]表示以u国家为根的子树贿赂m个国家的最少代价 单单这样的话转移是指数级的,其实这 阅读全文
posted @ 2016-02-28 15:22 WABoss 阅读(258) 评论(0) 推荐(0) 编辑