![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
poj 解题总结
ggeh_f
这个作者很懒,什么都没留下…
展开
-
二维树状数组_POJ2155_Matrix
POJ2299_Ultra-QuickSort题目连接这道题我用的是二维树状数组来做得,做法比较简单,都是二维树状数组的基本操作。 操作1: C: 给一个子矩阵进行非操作,这个可以用操作次数的叠加来进行,初始操作次数为0,然后每进行一次操作就加1,用的是树状数组更新函数,主要是对四个区域,即调用add(x1,y1),add(x1,y2+1),add(x2+1,y1),add(x2+1,y2+1)原创 2016-07-04 00:24:33 · 276 阅读 · 0 评论 -
线段树_poj_3468_A Simple Problem with Integers
题目链接线段树题目。包含基本操作:区间更新,区间求和。 区间更新:由于这里更新是对区间进行的,所以如果每次更新都更新到区间里的每个值上去的话那线段树的优势就没有了,所以就加一个懒惰标记,进行更新时就像之前普通的线段树区间查询那样, 从第一个点一直往下,如果整个区间被包含就标记为更新并记录下要跟新的值,如果不被全部包含则往下一层分。 这很容易理解。 但如果更新的时候有一段区间之前被部分更新,如果这原创 2016-07-11 20:32:15 · 233 阅读 · 0 评论 -
树状数组_poj_2299_Ultra-QuickSort
题目链接题意:求逆序对。 方法:树状数组+离散化这道题数据量比较大,直接开数组是不行的,所以采取离散化的办法,其实也就是弄一个映射关系而已。具体思想就是从大到小排好序,建立映射关系,然后开一个一样大的数组,按照原来的输入顺序在其映射的位置加1 (加的时候用树状数组的更新函数),然后用区间查询函数统计它前面有多少个数已经输入了(即区间求和),在这个数前面的都是比它大的数,所以这就知道有多少比它大的数原创 2016-07-11 21:49:11 · 216 阅读 · 0 评论 -
bfs_poj_3669_Meteor Shower
题目链接这是一道bfs题,寻找一个最近的不会被流星砸到的点。 其实主要处理好判断点的合理性问题就好了,题目中一句话比较关键,一旦一个点被流星破坏,之后这个点就不能再站人了。因此我们只要预处理出每个被破坏的点的最早时间就可以啦,然后后面的就很简单了。代码君#include <iostream> #include <vector> #include <algorithm> #include <cstd原创 2016-07-13 23:45:11 · 261 阅读 · 0 评论