摘要: 传送门 这道题是经典的区间DP。因为它要求有每两个相邻的石子堆合并,所以很显然对于区间[l,r]内的情况,我们只要枚举端点k,之后把这左右两端的石子合并取最大/小即可。 之后,这题是环形怎么破?显然不需要枚举开头……直接把数组开成原来二倍长就可以。之后每次在取答案的时候只要计算一段长度为n的就可以了 阅读全文
posted @ 2018-09-01 23:39 CaptainLi 阅读(341) 评论(0) 推荐(0) 编辑
摘要: 传送门 这道题的思路还是很好想的,就是维护一个差分数组,这样可以很容易的在O(n)的时间内计算出每天要的教室的数量。 之后的问题在于……怎么求最早的不符合要求的订单呢? 那就是老套路啦,二分答案! 先判断一下所有的都加上可不可行,如果不可行,我们二分那个不合法订单的编号,把所有在它之前的都加上,并且 阅读全文
posted @ 2018-09-01 23:34 CaptainLi 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 传送门 这道题就是一道不大容易被看出来的二分图匹配……(也可能是我太菜了qaq) 首先我们看一下,题目要求我们把对角线上都填满。我们把每一行和每一列都抽象成一个点,那么我们只要让每一行和每一列都匹配上就可以。 先把每行向源点连边,每列向汇点连边,行和列之间,如果g[i][j]是1的话那么就把第i行和 阅读全文
posted @ 2018-09-01 23:18 CaptainLi 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 传送门 这道题原来是可以用莫队暴力过掉的……但是数据加强之后500000万的范围使得nsqrtn的算法无法通过,那我们只能用log的方法,也就是树状数组。 本题要求我们统计的是贝壳的个数,我们唯一的困难在于如何判断重复元素。考虑这样一个事情,对于一些右端点相同的区间,我们在统计这些区间之内的情况的时 阅读全文
posted @ 2018-09-01 22:24 CaptainLi 阅读(139) 评论(0) 推荐(0) 编辑