随笔分类 - 暑假ACM集训第一周复习用整理
摘要:题目链接 用一个差分数组d A能看见B或者是B能看见A (假设A<B)都说明A+1比A矮,B比B-1高,即d[a+1]--,d[b]++ 但为什么不说B-1比B矮呢,这样就是d[a+1]--,d[b-1]--了 我认为啊,因为最后K的高度是要由sigma d[i] 1<=i<=K 加起来的 每次操作
阅读全文
摘要:题目链接 用一个sum[i][j]表示前i行前j列所有元素之和 当i>=x&&j>=y时,我们可以在前i行前j列找到满足大小的矩阵 由于我们i和j是从小到大找,所以每次找以a[i][j]作为右下角的目标矩阵来作比较 这样就能不重不漏了 题目代码
阅读全文
摘要:题目链接 题目含义 给出一串数以及m 要求删除m个数后,让剩下的一串数组成的整数最小 题目分析 首先,通过案例可以发现一个规律 在满足留下足够的数字的条件下, 剩下的第一个数一定是能取得的最小的数 (也可能是0) 所以我们先通过ST表找出每个区间的最小数字 然后在满足至少留有len-1个数字的情况下
阅读全文
摘要:题目链接 用一个倍增来做 首先得到前缀和数组sum 然后从1-n遍历起点,如果sum[k+p]-sum[p]满足,p<<=1,否则p>>=1最后得到一个最小的长度 题目代码 要注意让k不要越界
阅读全文
摘要:题目含义 给出一堆坏的电脑的坐标和一系列操作 好的电脑如果距离小于等于d可以看做一个集合 然后O是修电脑,S是询问两个电脑在不在一个集合 题目分析 明显的并查集问题,只是要标识好的和坏的电脑,然后只能在好的电脑用并查集 注意:如果让【新修好的电脑】的父亲指向【之前修好的电脑】的话 可能会出错,本该在
阅读全文
摘要:题目含义 有一堆商品,给出了售货截止日期和售价 让你选择每天售出的商品,使得收入最大 题目分析 为什么可以选择并查集呢,我一开始也不明白 但是尽量选择售价高的商品,这个贪心思维是没问题的 主要在于选择一个商品后,可能一些快到期的商品就不能选了 在这里,我们根据截止日期分堆,一个截止日期一个集合 我们
阅读全文
摘要:题目含义 找出与之前的话不符的假话的数目 题目分析 简单的扩展并查集 题目代码
阅读全文
摘要:题目含义 就是初始化一堆数为1 可以经过操作把一个区间的数都改变 并求这堆数的总大小 题目分析 有一个 区间更新,可以用树状数组也可以用线段树 题目代码
阅读全文
摘要:题目含义 给出一堆星星的横纵坐标 指定一个星星的大小是横坐标小于等于它且纵坐标小于它的星星个数 要求你求出各个大小的星星的个数 题目分析 这道题可以用树状数组做,但需要一点巧妙的转化 如果把星星按纵坐标从小到大进行处理,这个星星的大小就是横坐标小于等于它的星星的个数 这样就只用考虑横坐标,并通过树状
阅读全文
摘要:题目含义 题目都给出来了,要你写个线段树 题目分析 只要学会了模板,这种题就很简单了 题目代码 注:不管怎样,首先要试着默写出来通过一次
阅读全文
摘要:题目含义 每一行给出两个点,代表一个矩形的左下角端点和右上角端点 要你求出这些矩形覆盖坐标轴的整个面积 题目分析 用平行x轴的扫描线扫描整个图形,得到很多长宽不同的矩形,求出面积再相加 将每个矩形的面积记作 len(x)*len(y) 每个len(x)我们通过加减每个点的x左右坐标,通过线段树求su
阅读全文
摘要:题目含义 给出一堆数和一个数T 找出满足区间和严格小于T的区间个数 题目分析 又是求区间和,那么就考虑前缀和[a,b]=sum[b]-sum[a-1]<T 如果求出前缀和用两个循环一个个试,那肯定会超时 而式子可以化作 sum[j]-T<sum[i],j>i,这就很像一个求逆序对的问题了 题目代码
阅读全文
摘要:题目含义 给出一堆数,和一系列操作 Q是求区间的值,C是区间每个数都增加一个数 题目分析 可以用线段树做,但这里就用树状数组做了 题目代码 一次过了,开心
阅读全文
摘要:题目含义 给出一堆数,要你在里面找几个相邻的数 它们的和乘以它们的最小值是这所有数里最大的 输出它们得到的值以及第一个数的坐标和最后一个数的坐标 题目分析 这个式子是:这些数的和 乘以 这些数的最小值 那么如果最小值不变,数的个数是越多越好(因为数都大于零) 那么我们可以考虑根据最小值划分区间,并按
阅读全文
摘要:题目含义 给出一个区间的长度,要你在一堆数中移动这个区间(保持区间长度不变),找出对应的最大最小值 题目解析 这个区间在向右移动,那么时时刻刻有数离开这个区间,有数加入这个区间,这样的话可以考虑单调队列 把这些数按从大到小的顺序放入一个数组,并且从大到小判断这个数是否满足在这个区间,不满足就取出 这
阅读全文

浙公网安备 33010602011771号