![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
=====树状数组=====
Qingo呀
老菜鸡。
展开
-
HDU - 6534 Chika and Friendly Pairs (莫队+离散化+树状数组)
题链:https://vjudge.net/problem/HDU-6534题意:问区间[L,R]内,有多少对 (i,j) 满足 ai < aj 且 abs(ai-aj) <= k ?思路:莫队分块一下,对于ai 要找的是有多少ai-k<= aj <= ai+k ,树状数组求即可。实现1:998ms直接无脑实现#include <bits/stdc++.h>#define ll long longusing namespace std;cons..原创 2020-12-01 22:42:27 · 156 阅读 · 0 评论 -
luogu P1972 [SDOI2009]HH的项链 (莫队(超时)/树状数组)
题链:https://www.luogu.com.cn/problem/P1972思路1:如果考虑莫队的话就是模板题,只不过出题人卡常,会T。#include <bits/stdc++.h>#define ll long longusing namespace std;const int N = 1e6+10;const int M = 1e6+10;int n,m,base;int a[N],num[M],ans[N],belong[N],cnt=0;struct no原创 2020-11-29 21:58:20 · 125 阅读 · 1 评论 -
LeetCode 每日一题 327. 区间和的个数 (归并排序/树状数组)
题链:https://leetcode-cn.com/problems/count-of-range-sum/思路1:对前缀和(一定要加上0!!!!!!)归并排序,每次先统计答案再合并区间。class Solution {public: int ans,n; int low,up; void solve(vector<long long>& a,int l,int r){ if(l==r) return ; int m=(l+r)>>1; sol原创 2020-11-28 20:49:58 · 181 阅读 · 0 评论 -
LeetCode 每日一题 493. 翻转对 (离散化+树状数组)
题链:https://leetcode-cn.com/problems/reverse-pairs/我的思路:先离散化,然后倒着找,对于每个i,就看一下有多少a[j]<a[i]/2就好。需要注意的是有有可能找到的j是最后一个或2*a[j]==a[i],这两种情况都要减一。#define ll long longconst int N = 5e4+10;int sum[N];int lowbit(int x){ return x&(-x); }int ask(int x){原创 2020-11-28 20:02:25 · 192 阅读 · 0 评论