
数据结构------树状数组
文章平均质量分 73
M_GSir
这个作者很懒,什么都没留下…
展开
-
树状数组+离散化(hdu 5862)
题目:hdu 5862 题意:给定几个线段,求有多少个线段的交点,输入解释:第一行表示测试数据,第二行表示有多少条线段,第三行开始是每个线段的两点坐标 题解:树状数组+离散化(Y坐标太大,要压缩存储空间,采用离散化),先用map对y坐标进行离散化,再将与x轴平行的线段拆成两个点,一个是记录起点x坐标,一个记录末点x坐标+1(这样就可保证末点相交被记录进去,方便),与y轴平行的只要记录x坐标和两原创 2016-09-02 10:23:53 · 499 阅读 · 0 评论 -
树状数组(acm hdu 5792)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5792 题意:给你一串数组A,要求a≠b≠c≠d,1≤ab≤n,1≤cd≤n,AaAb,Ac>Ada≠b≠c≠d,AaAb,Ac>Ad 题解:先只考虑AaAb,Ac>Ad的情况,然后一个一个排除掉a==c a==d b==c b==d 这四种情况 要建立4个数组,left_原创 2016-08-03 22:38:54 · 478 阅读 · 0 评论 -
树状数组+dfs(hdu 5877)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5877 题意:给定一棵树(带根),定义weak pair 为1.u为v的祖先,2.a(u)*a(v) 题解:先用map对a进行离散化处理,因为总共10W的点,但数据表示范围很大,树状数组完全存不下,所以要离散化,然后找出根结点,从根结点遍历子节点,每次遍历的时候先统计之前加入的满足a(u)原创 2016-09-16 11:30:38 · 448 阅读 · 0 评论 -
离线记录+树状数组(hdu 5869 统计任意区间的不同gcd值)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5869 题意:给定一个数组,给出范围[l,r],求在这范围内的不同gcd值得个数(连续下标) 题解:用o(nlogA)计算出gcd值并进行记录,每次固定右值,枚举前一个得出的gcd值,记录左边的坐标和不同gcd值,然后用树状数组维护,具体见注释 代码: #include #include #in原创 2016-09-12 23:26:17 · 593 阅读 · 0 评论 -
二维树状数组(poj 1195)
题目:http://poj.org/problem?id=1195 题意: 给出一个全0的矩阵,然后一些操作 0 S:初始化矩阵,维数是S*S,值全为0,这个操作只有最开始出现一次 1 X Y A:对于矩阵的X,Y坐标增加A 2 L B R T:询问(L,B)到(R,T)区间内值的总和 3:结束对这个矩阵的操作 题解:利用二维树状数组,利用logn复杂度对原创 2017-02-07 22:21:07 · 563 阅读 · 0 评论