随笔分类 - 数据结构
摘要:一、题面 POJ2155 二、分析 楼教主出的题,是二维树状数组非常好的题,还结合了开关问题(开关变化的次数如果为偶数,状态不变,奇数状态相反)。 题意就是给了一个二维的坐标平面,每个点初始值都是0,然后给一个矩形的区域,对该区域的点的状态进行反转。然后在中间插有查询,查该点的状态。 其实,还是对反
        阅读全文
                
摘要:一、题目 POJ2886 二、分析 这个题目吧,开始没读懂,做的时候也没懂,WA的时候懂了。假设是第p个出圈的人有一个对应的因子个数$F(p)$,那么,题目求的就是这个$F(p)$最大的对应的人。 1.首先要对所有$F(p)$值进行预处理打表。因为多次询问。 2.每次都会有一个人出圈,那么为了能够每
        阅读全文
                
摘要:一、题面 POJ1990 二、分析 一个简单的树状数组运用。首先要把样例分析清楚,凑出57,理解一下。然后可以发现,如果每次取最大的v就可以肆无忌惮的直接去乘以坐标差值就可以了,写代码的时候是反着来的,好操作一点。 1.根据每个点的v值进行从小到大的排序。 2.排序后从小到大进行处理,重点是处理坐标
        阅读全文
                
摘要:一、题目 POJ3468 二、分析 裸的线段树区间查询+修改。 三、AC代码 1 #include <cstdio> 2 #include <iostream> 3 #include <algorithm> 4 5 using namespace std; 6 7 #define ll long l
        阅读全文
                
摘要:一、题面 POJ2492 二、分析 并查集判断类别的题目感觉套路都差不多。 还是先判断在不在一个集合里,在一个集合里才能判断是否同类。 若不在一个集合里则需要将这两个点联系起来。 关于联系起来后关系的变化,画几个图后发现还是异或。 为什么用0表示同类,1表示异类?画几个图发现这样表示关系变换最简单。
        阅读全文
                
摘要:一、题面 POJ1984 二、分析 这题还是比较有意思的一题。 首先需要清楚的是,这题与普通并查集的区别在于它的节点之间的权值是二维的,因为是曼哈顿距离,肯定不能直接存距离,这样将不利于后面的路径压缩更新。 再看如何解题,先要把输入的数据存起来,因为后面是询问,关于方向的处理直接用正负即可。 存好数
        阅读全文
                
摘要:一、题面 POJ1733 二、分析 该题与之前做过的带权并查集的唯一区别就是数组开不下。所以需要用离散化的思想,只取那些有用的点来解决该问题。 离散化其实就是把这些所有用到的点收集后,去重,再排一下序,然后用新数组它们的下标代表他们。 接下来数组能开下了,就用带权并查集的做法去做,这里权值可以直接用
        阅读全文
                
摘要:一、题面 POJ1456 二、分析 1.贪心策略:先保证从利润最大的开始判断,然后开一个标记时间是否能访问的数组,时间尽量从最大的时间开始选择,这样能够保证后面时间小的还能够卖。 2.并查集:并查集直接加快了判断该时间能否卖的速度,贪心原理相同。 三、AC代码 1 //贪心 2 #include <
        阅读全文
                
摘要:一、题面 HDU3038 二、分析 用并查集可以方便的判断两个位置是否有关系,这种关系可以通过是否有公共父节点判断,如果有公共父节点则可以直接判断是否正确,如果没有公共父节点,就可以把这个条件与之前的联系起来。同时需要设定sum,表示当前点到父节点的权值,这个权值方便后面的判断,这里有几种情况。 假
        阅读全文
                
摘要:一、题面 POJ2010 二、分析 堆预处理 首先可以考虑吧随便取一个点,判断两侧的最小的总费用是多少,然后相加判断是否满足条件。如果直接判断会超时,所以需要用大根堆预处理一下。先看从分数最小的往最大的预处理,先取N/2个相加,并把他们都加入到堆中,先假设这个和值是最大的,然后不断往后扫描的过程中,
        阅读全文
                
摘要:一、题面 POJ2431 二、分析 主要说几个坑 1.给出的点需要根据下标排序。 2.根据不同的方式要把起始点或者终点加进去。我没有转换距离,而是直接从起始点到终点根据距离不断相减判断的,那么起点就是25,所以要把终点0加进去。如果转换距离的话,终点就是相对于出发点25。这个根据个人选择。 三、AC
        阅读全文
                
 
                    
                
 浙公网安备 33010602011771号
浙公网安备 33010602011771号