03 2019 档案

摘要:一、题面 here 二、分析 这题刚开始没读懂题意,后来明白了,原来就是一个数连通块里点数的问题。首先在建图的时候,只考虑红色路径上的点。为什么呢,因为为了不走红色的快,那么我们可以反着想只走红色的路径,这样把所有的可能数再减去只走红色路径的数就是最终的答案了。这里要注意的是,如果连通块里只有一个点 阅读全文
posted @ 2019-03-26 21:47 Dybala21 阅读(177) 评论(0) 推荐(0)
摘要:一、题面 POJ3368 二、分析 仍然是一道只需要区间查询不需要区间修改的线段树题。 这题的题面比较特别,它是一组非减的数组。当需要去找一段区间内出现次数最多的数字时,这些数字必然是连续的,那么就可以用线段树维护区间内出现的最大次数时,同时维护两端的数字出现的次数。这样,就可以在建树的时候通过判断 阅读全文
posted @ 2019-03-22 21:40 Dybala21 阅读(204) 评论(0) 推荐(0)
摘要:一、题面 POJ3264 二、分析 典型的区间问题,没有更新只有查询。 可以用线段树,也可以用ST表,但ST表空间上可能会多点。 查询的时候需要注意的是,在判断区间是完全属于右子树还是左子树时,要根据建树的情况来选择,不然会出错。具体看代码 三、AC代码 阅读全文
posted @ 2019-03-21 22:23 Dybala21 阅读(127) 评论(0) 推荐(0)
摘要:一、题面 POJ2155 二、分析 楼教主出的题,是二维树状数组非常好的题,还结合了开关问题(开关变化的次数如果为偶数,状态不变,奇数状态相反)。 题意就是给了一个二维的坐标平面,每个点初始值都是0,然后给一个矩形的区域,对该区域的点的状态进行反转。然后在中间插有查询,查该点的状态。 其实,还是对反 阅读全文
posted @ 2019-03-15 14:59 Dybala21 阅读(186) 评论(0) 推荐(0)
摘要:一、题目 POJ2886 二、分析 这个题目吧,开始没读懂,做的时候也没懂,WA的时候懂了。假设是第p个出圈的人有一个对应的因子个数$F(p)$,那么,题目求的就是这个$F(p)$最大的对应的人。 1.首先要对所有$F(p)$值进行预处理打表。因为多次询问。 2.每次都会有一个人出圈,那么为了能够每 阅读全文
posted @ 2019-03-15 14:16 Dybala21 阅读(206) 评论(0) 推荐(0)
摘要:一、题面 POJ1990 二、分析 一个简单的树状数组运用。首先要把样例分析清楚,凑出57,理解一下。然后可以发现,如果每次取最大的v就可以肆无忌惮的直接去乘以坐标差值就可以了,写代码的时候是反着来的,好操作一点。 1.根据每个点的v值进行从小到大的排序。 2.排序后从小到大进行处理,重点是处理坐标 阅读全文
posted @ 2019-03-11 22:37 Dybala21 阅读(144) 评论(0) 推荐(0)
摘要:一、题目 POJ3468 二、分析 裸的线段树区间查询+修改。 三、AC代码 1 #include <cstdio> 2 #include <iostream> 3 #include <algorithm> 4 5 using namespace std; 6 7 #define ll long l 阅读全文
posted @ 2019-03-07 16:54 Dybala21 阅读(100) 评论(0) 推荐(0)