摘要: 【题目描述】给定一个序列a1...an,每次可以吧第一个元素放到最后形成一个新的序列,求解这n个序列中逆序数最小的一个。【思路】线段树的应用——利用线段树求解逆序数。一组逆序对ai,aj满足ai>aj&&i<j,求解时先进行排序,找出没个数的相对大小。插入的时候从最后一个开始向前一次插入,每次将x[i]插入到k时。询问1...k这段中已插入的个数。因为1...k这段中已插入的个数即为排在x[i]之后并且比x[i]小的数的个数,即为包含x[i]的逆序对总数。求出原序列的逆序对数之后,每次变更之后的逆序数可以提出来。#include<cstdio>#incl 阅读全文
posted @ 2012-07-03 23:25 silver__bullet 阅读(121) 评论(0) 推荐(0) 编辑