上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 21 下一页
摘要: Skyscrapers (hard version) 思路:我们需要维护当下标为inx的大楼为最高的时候,两边大楼的情况。我们可以把下标为inx的大楼最高时,分别统计左边和右边的情况,我们可以用单调栈维护最小值(小->大),如果栈顶的元素的高度小于inx的大楼,说明之前的所有大楼都因为栈顶的大楼而小 阅读全文
posted @ 2020-04-28 00:21 SummerMingQAQ 阅读(228) 评论(0) 推荐(0) 编辑
摘要: Yet Another Counting Problem 思路:假设a <= b。 x % a % b = x % a是显然成立的,那么只需要比较 x % a != x % b % a的情况就可。 通过手写 x % a 和 x % b % a的情况,发现我们只需要写出一个lcm(a,b)的表格(lc 阅读全文
posted @ 2020-04-27 17:20 SummerMingQAQ 阅读(268) 评论(0) 推荐(0) 编辑
摘要: Count The Blocks 思路:题目可以理解为求长度为x(每个字符相同)的块有多少个。我们可以把这些字符合并成一个块,假设这个块的长度为m,这样总长度n = n - m + 1.这个块两边不能有相同的字符。那么分情况讨论: 假设n = 4, x = 2,那么 n = 4 - 2 + 1 = 阅读全文
posted @ 2020-04-24 23:00 SummerMingQAQ 阅读(257) 评论(0) 推荐(0) 编辑
摘要: Array Shrinking 思路:可以看出是区间dp的问题,n = 500,刚好可以是O(n^3)。难点在于相邻数字合并的维护,这里我们可以定义一个二维的数组a[l][r],表示L到R区间合并后的数字是a[l][r],比如 3 3 3 a[1][2] = 4, a[2][3] = 4,然后dp[ 阅读全文
posted @ 2020-04-24 19:10 SummerMingQAQ 阅读(272) 评论(0) 推荐(0) 编辑
摘要: Maximum White Subtree 思路:我们假设节点1为root,如果我们知道了root所有子树的最优情况,那么我们可以把1节点的最优情况传递给它的所有子树(当然如果传递给如图2的子树,那么需要把以2为root的最优贡献给减去,再传递root[1]的最优价值)。那我们这么维护子树的最优情况 阅读全文
posted @ 2020-04-17 17:03 SummerMingQAQ 阅读(300) 评论(0) 推荐(0) 编辑
摘要: Linova and Kingdom 思路:我们可以很容易想到,最深的点可能是我们需要的点,我们选点都是从最深点考虑,但有种情况是,在最优的情况,我们选择了一个点建立工厂,这个点有两个儿子点,那这两个儿子也一定是工厂,这两个儿子工厂的价值会因为父亲节点建立了工厂随之减去1,这是难点,我们只需要把两个 阅读全文
posted @ 2020-04-17 16:58 SummerMingQAQ 阅读(283) 评论(0) 推荐(0) 编辑
摘要: Sleeping Schedule 思路:一个睡眠时间和下一个睡眠时间的情况是传递关系,所以我们需要记录每一层的信息,一天的时间h可以压缩信息,dp[i][j]可以表示在第i个睡眠阶段,第j时刻“good sleep”的次数。 如果dp[i - 1][j]是合法情况,即状态转移过程中,出现过这个过程 阅读全文
posted @ 2020-04-15 16:03 SummerMingQAQ 阅读(250) 评论(0) 推荐(0) 编辑
摘要: 滑动窗口:有两个指针L,R。加入一个数R往右移动,减去一个数L往右移动。 一般需要维护窗口中的最大值或者最小值,询问复杂度可以可以O(1)。 一般需要双向队列的辅助,例如题目:滑动窗口 假设是一个需要维护最大值的窗口,那么双向队列里的数组应该是“大->小”, 为了满足这个条件,后面加入数x时,需要把 阅读全文
posted @ 2020-04-12 16:39 SummerMingQAQ 阅读(1085) 评论(0) 推荐(1) 编辑
摘要: Cows 思路:我们可以按照每个范围的S从小到大排序,相同的S按E从大到小排序,这样的好处是当前范围的S一定大于等于之前范围的S(即当前的范围可能被之前范围的包围),那么我们只需要统计之前的范围E比当前的范围E大于等于的有几个即可。这里需要注意如果两个范围完全相同的情况,我们可以把当前的范围与之前的 阅读全文
posted @ 2020-04-08 09:45 SummerMingQAQ 阅读(216) 评论(0) 推荐(0) 编辑
摘要: Delivery Route 题目:有n个派送点,x条双向边,y条单向边,出发点是s,双向边的权值均为正,单向边的权值可以为负数,对于单向边给出了一个限制:如果u->v成立,则v->u一定不成立。问,从s出发,到其他所有点的最短路是多少(包括s)。 思路:对于单向边的限制,我们可以这么理解:双向边相 阅读全文
posted @ 2020-04-07 22:05 SummerMingQAQ 阅读(350) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 21 下一页