摘要:
与前面的那题一样的做法:#include <iostream>#include <cstdio>#include <cmath>#include<cstring>#include<vector>#include <algorithm>using namespace std;#define N 1000005#define LL long longint c[N],n;struct point{ int val,id;}p[N];int sum(int x){ int ret=0; while(x) { ret+=c[x]; 阅读全文
摘要:
牢骚:~做了那么久树状数组卡死在离散化,无语到透顶。离散化的定义:把无限空间中有限的个体映射到有限的空间中去,以此提高算法的时空效率。这题是赤裸裸的求逆序对,为何要用离散化?首先,这恶心的题目给出a[i]的范围居然是10亿,这还求啥逆序对,开个辅助数组c,直接MLE了,还好出题人人性化了点,给了个数组长度n,1<=n<50,000,还有希望...然后,我们根据a[i]的值从小到大排列,留着它的id...然后遍历#include <cstdio>#include <cmath>#include<vector>#include <algorit 阅读全文