随笔分类 -  I-数据结构-单调性数据结构

摘要:Link: 传送门 A: 由于每个颜色只染色一次就确定了所有要染色的区间 要求染色的次数其实就是求区间最多嵌套多少层,如果有区间相交则无解 以上操作明显可以将左端点排序后用栈来维护 #include <bits/stdc++.h> using namespace std; #define X fir 阅读全文
posted @ 2018-09-13 09:46 NewErA 阅读(202) 评论(0) 推荐(0)
摘要:Link: Codeforces #172 传送门 A: 一眼看上去分两类就可以了 1、每个矩形只有两条边相交,重合的形状为菱形 2、每个矩形四条边都有相交 对于情况1答案为$h*h/sin(a)$ 对于情况2可以列出一个二元一次方程组,手动解一下就好了 不过计算几何确实容易写挂啊…… 有几个注意点 阅读全文
posted @ 2018-08-25 16:54 NewErA 阅读(280) 评论(0) 推荐(0)
摘要:Link: P2219 传送门 Solution: 先对每个点算出以$(i,j)$为矩形右下角时的权值和 问题就转化为对于以$(i,j)$为右下角的$a*b$的矩形中的最小值 这时模型和 [BZOJ 1047]理想的正方形 就基本相同了,做两次单调队列就好了 Tip: 1、$c*d$处于$a*b$边 阅读全文
posted @ 2018-07-20 22:40 NewErA 阅读(269) 评论(0) 推荐(0)
摘要:Link: P2698 传送门 Solution: 对于可行区间$[L,R]$,随着$L$的递增$R$不会递减 因此可以使用尺取法来解决此题:不断向右移动左右指针,复杂度保持线性 同时为了维护区间内的最值,要设立两个单调队列来维护最大/最小值 每次当$L$增加时,要从队列头部删去小于$L$的节点(如 阅读全文
posted @ 2018-07-19 19:42 NewErA 阅读(239) 评论(0) 推荐(0)
摘要:Link: ARC063 传送门 C: 将每种颜色的连续出现称为一段,寻找总段数即可 #include <bits/stdc++.h> using namespace std; int cnt=0,len; char s[100005]; int main() { scanf("%s",s+1);l 阅读全文
posted @ 2018-07-10 21:12 NewErA 阅读(228) 评论(0) 推荐(0)
摘要:Link: BZOJ 1047 传送门 Solution: (1)先横向用单调队列求出每个数左边$n$个数中的最值 (2)再纵向利用横向的结果用单调队列进行相同的操作 通过以上操作将$a*b$的矩阵转化为了$(a-n+1)*(b-n+1)$的矩阵 相当于每个正方形被缩成了一个点,而每个点的最值就代表 阅读全文
posted @ 2018-07-08 21:37 NewErA 阅读(469) 评论(0) 推荐(0)
摘要:Link:https://www.lydsy.com/JudgeOnline/problem.php?id=1499 Solution : 能立即发现这是和动态规划相关的题目 令f[t][i][j]表示第t段时间时,钢琴位于(i,j)处时,从第1段时间到第t段时间的最长滑行路程。 f[t][i][j 阅读全文
posted @ 2018-05-24 15:40 NewErA 阅读(272) 评论(0) 推荐(0)
摘要:[BZOJ 3039] 玉蟾宫 阅读全文
posted @ 2017-12-07 23:04 NewErA 阅读(343) 评论(0) 推荐(0)