题目地址: http://poj.org/problem?id=2299
思路:
IndexTree的叶节点和数字按顺序一一对应;
假设先排小的数字,确认每个数字移动的时候,左侧有K个比自己大的,则自己就要移动K次;
每个数字移动后,则这个数字的位置已经不存在,更新为0;
SUM(K1, K2, …, Kn)即为所求。
代码
import java.io.IOException;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
public class Main {
static int T, N;
static int[] tree;
static int[][] nodes;
static void update(int idx, int value) {
while (idx > 0) {
tree[idx] += value;
idx