随笔分类 - 高级数据结构--树状数组
摘要:地址:http://poj.org/problem?id=1990 题意: 给出n只,每只两个属性: v,x 每两只的和为:sum=max(v1,v2)*fabs(x1-x2),求所有n*(n-1)/2对的和 解析: 对v值进行从小到大排序,那么对于当前羊的v值,它之前的羊都要乘这个v。 那么对于当
        阅读全文
                
摘要:地址:http://poj.org/problem?id=2182 题意: N头奶牛排队,它们的身高为1~n,已知每头牛前面有多少头比自己矮,求每头牛的身高。 解析: 输入其实是从i=2开始的 暴力代码:跑了438M #include<iostream> #include<cstdio> using
        阅读全文
                
摘要:地址:http://poj.org/problem?id=2155 题意: n*n的矩阵。初始为0。 C:x1,y1,x2,y2:围成的矩阵内数字反转:0/1 Q:x,y:查询a[x][y]为多少 解析: 还是差分 先把它想成一维:修改[l,r]:那么我们就更新d[L]+1,d[R+1]+1; 都+
        阅读全文
                
摘要:地址:http://poj.org/problem?id=2029 题意: 给一个w*h的矩阵,n个坐标点被标记,给出s*t的矩阵,问它能容纳最多多少个标记点。 解析: 暴力枚举每一块区间,注意坐标点,比如定位i,j,左上角点应该为:i-s+1,j-t+1。算的时候还是那一套,画图更容易理解。 接下
        阅读全文
                
摘要:地址:http://poj.org/problem?id=2481 题意:n只羊,每只羊占有一个[S,E]。如果一只羊的区间囊括它,而且长度比它长,就说明这只羊比它大。求每只羊比它本身大的羊的数目。 解析: 这道题和LOJ10114数星星:https://www.cnblogs.com/liyexi
        阅读全文
                
摘要:地址:http://poj.org/problem?id=1195 题意: 0 s: s*s的初始为0的矩阵a[][] 1 X Y A:a[x][y]+A 2 L B R T:左上角a[L][B]到右下角a[R][T]的矩阵和。 解析: 二维数组数组板子,和一维基本类似: void update(i
        阅读全文
                
摘要:地址:http://acm.hdu.edu.cn/showproblem.php?pid=4911 题意:可以进行k次相邻数的交换,问交换后还有多少个逆序对。 解析: 两种 nlog(n)的做法: 一: 归并排序 直接套模板即可。 归并排序,两次递归后,得到的是内部已经排好序的两组,所以只要有一个a
        阅读全文
                
摘要:地址:http://poj.org/problem?id=2985 题意: 输入n,m。共n只猫,m组询问。 1,L,R。L号猫所在组和R号猫所在组合并 0,x。查询第x大组有几只猫。 解析: 理解了好久的说。。。最最重要的还是树状数组的本质要理解好,要不代码写再多也没用。 树状数组:c[i]表示所
        阅读全文
                
摘要:地址:http://acm.hdu.edu.cn/showproblem.php?pid=1754 解析:先说update操作。c[]表示所管辖的区间范围里的最大值。 void update(int id,int x) { while(id<=n) { c[id]=x; for(int i=1;i<
        阅读全文
                
摘要:地址:https://ac.nowcoder.com/acm/contest/5477/F 解析:其实并不需要关心它具体是怎么构造的,那样的是很麻烦的。。。明确一点,某个位置出现的次数越多,就需要给它赋越大的值,既当前sum=出现次数*x。出现次数,可以通过差分数组或线段树维护一下,然后排个序,按顺
        阅读全文
                
摘要:地址:https://loj.ac/problem/10114 解析:由于坐标是按y递增排序,所以对于一个点来讲,只看之前x小于等于它的就可以了。那么对于输入的每个点,求之前x小于等于它的,就得用树状数组维护。树状数组c[i]表示x=i时,它之前x小于等于它的有几个点。个数就是级数,num[]来记录
        阅读全文
                
摘要:Description You have N integers, A1, A2, ... , AN. You need to deal with two kinds of operations. One type of operation is to add some given number to
        阅读全文
                
摘要:本地搬运~ 关于树状数组的学习,强烈推荐这个视频:https://www.bilibili.com/video/av26371798?from=search&seid=2141442207537065040 1:树状数组:查询和修改复杂度都为log(n)的数据结构,本身可用于单点修改区间查询,加入辅
        阅读全文
                

 浙公网安备 33010602011771号
浙公网安备 33010602011771号