给出0~n-1的一个排列,可以整体移动,求逆序对最小值 把数字num[i]的加入,等价于树状数组的第n-num[i]位加1 因为num[i]是第 (n-1)-num[i]+1=n-num[i]大的数字,产生逆序对,只可能在其之前已经插入了数字,此时直接区间查询即可 1 #include <set> ...
分类:
编程语言 时间:
2020-02-10 09:33:02
阅读次数:
50
#include<iostream> #include<algorithm> #include<cstring> #include<cstdio> using namespace std; typedef long long ll; const int N=1e5+10; int a[N]; int ...
分类:
编程语言 时间:
2020-02-09 20:45:45
阅读次数:
68
单点修改+区间查询=树状数组 空间复杂度O(n) 时间复杂度O(mlogn) 1 #include <set> 2 #include <map> 3 #include <cmath> 4 #include <queue> 5 #include <vector> 6 #include <cstdio> ...
分类:
编程语言 时间:
2020-02-09 20:34:15
阅读次数:
79
//每个数字只会被它后面的比它小的数字影响,且会向右移动相应个数的位置 //比如:6 4 3 5 2 1 。4后面比它小的有 三个,因此它的最右边位置就是当前位置 +3,即5 //如果该数字本身在标准位置左边,那无须考虑,初始位置就是最左端 //如果它在标准位置右边,我们可以知道,它最终肯定要回到标 ...
分类:
编程语言 时间:
2020-02-09 20:17:01
阅读次数:
69
P1908 逆序对 离散化+树状数组:AC_Code 1 #include <bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 const int maxn=500010; 5 6 int a[maxn],tree[max ...
分类:
编程语言 时间:
2020-02-09 20:09:07
阅读次数:
71
Sourcebzoj3441Hint请先思考后再展开按被删除的顺序考虑每个点,然后按照题意模拟Solution请先思考后再展开被删除的顺序一定是按照【能被操作的次数】为第一关键字,位置作为第二关键字然后你维护当前轮数和当前走到什么位置(我存了具体位置,其实应该存排名更好写……)用个树状数组资瓷排名和... ...
分类:
其他好文 时间:
2020-02-09 12:06:29
阅读次数:
59
入门级数据结构算法。复习一下,分别手写一个。 线段树版本(过了CF上的https://codeforces.com/contest/1291/problem/D): 1 #include<bits/stdc++.h> 2 #define f(i,a,b) for(int i=a;i<=b;i++) ...
分类:
编程语言 时间:
2020-02-08 13:26:22
阅读次数:
145
介绍本题的两种做法: 方法1 前置芝士 1. "线段树" :一个很重要的数据结构. 2. "树状数组" :一个很重要的数据结构. 具体实现 区间修改,单点查询很容易就会想到树状数组了,至于查询前k个数的和又可以丢给权值线段树去干,所以第一种很显然的方法就是树状数组套一个线段树实现. 代码 方法2 前 ...
分类:
其他好文 时间:
2020-02-08 11:56:46
阅读次数:
65
转:https://blog.csdn.net/weixin_36296538/article/details/83153070 前言我最近在琢磨django框架的使用,在上传个人网站服务器上时,再次遇到了找不到静态文件,css、img等样式全无的问题。于是沉下心来,好好研究了django的静态文件 ...
分类:
Web程序 时间:
2020-02-07 19:09:03
阅读次数:
89
原理很简单,利用差分知识做的,只能单点查询,在性能上优于线段树,但没有区间查询功能。 1 #include<bits/stdc++.h> 2 #define f(i,a,b) for(int i=a;i<=b;i++) 3 using namespace std; 4 5 const int N=5 ...
分类:
编程语言 时间:
2020-02-07 13:08:12
阅读次数:
82