树状数组
撒旦即可
研究CV的菜狗
展开
-
poj2299(树状数组)
本题要求对于给定的无序数组,求出经过最少多少次相邻元素的交换之后,可以使数组从小到大有序。 思路:典型的求各个数的逆序数题,但是若是直接暴力计算,那么时间复杂度为o(n^2),肯定超时,所以用树状数组来维护,将时间复杂度压缩为o(nlogn)。简单题,可能太久没练树状数组了,打代码的时候树状数组的sum函数忘return 了,导致调了好久 #include<cstdio> #in...原创 2018-09-12 00:14:26 · 624 阅读 · 1 评论 -
POJ3468(线段树模板)
解题思路:线段树裸题。但有个地方苦恼了一下。最后这个ans必须得长整型才行。 #include<cstdio> #include<cstring> #include<iostream> using namespace std; typedef long long ll; struct node { int l,r; ll w,sum; }s[400009...原创 2019-02-15 11:27:52 · 158 阅读 · 0 评论 -
HDU1541(树状数组模板)
解题思路:树状数组裸题,但是要注意的是树状数组是从1数组开始计数的,而不是从0开始计数的。 #include<cstdio> #include<cstring> #include<algorithm> #include<iostream> using namespace std; int s[15009],bit[15009]; int n,MA...原创 2019-03-16 13:39:36 · 308 阅读 · 0 评论 -
2019湘潭邀请赛 Chika and Friendly Pairs(莫队+树状数组)
解题思路:莫队的复杂度O(mlogn),然后更新,查询树状数组的复杂度O(logn),最终复杂度O(mlog^2n) #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #define N 27005 using namespace std; struct ...原创 2019-05-22 22:35:51 · 267 阅读 · 0 评论