题目链接 http://vjudge.net/problem/POJ-2182 解题思路 用最朴素的想法,从尾到头扫描,再开两个循环找空位,时间复杂度O(n3),容易超时。 正确的做法是建立线段树。维护每个区间的长度。长度足够排下就往左子树走,否则往右子树。 直到叶子节点,此时叶子节点的区间(点)为 ...
分类:
其他好文 时间:
2016-09-21 00:08:20
阅读次数:
176
Lost CowsTime Limit:1000MSMemory Limit:65536KTotal Submissions:10695Accepted:6865DescriptionN (2 =0;i--) { int pos=seek(deg[i]+1); ...
分类:
其他好文 时间:
2016-01-15 15:54:43
阅读次数:
210
传送门
大意:有一个1-n的排列,数据给出从第二个到第n个数中的每一个数前面有几个数比这个数小,要求还原这个1-n的排列
思路:最近做这种题好像有点感觉了,很自然的想到,我们可以从最后一个数来倒推,一直推出第一个过后就可以完事了。这样的话,我们很容易写出一个N²N² 的算法。但作为一名OIer,我们要求上进,所以我们就会想,可不可以优化一下呢。其实我们发现,在找前面出现了几个比目标值小的操作很冗...
分类:
其他好文 时间:
2015-08-16 15:17:48
阅读次数:
116
一群牛,编号为1到n,但是编号乱了,已知每只牛的前面有多少只编号比其小,求出牛的编号。插点问段。这道题要从后面反推回来,比如最后的一只牛,知道有a只编号比它小,则它的编号为a+1。update 更新已经确定的编号,sum(i) 查询已经确定的编号中(后面的牛的编号都确定了),有多少个比i小。 1 #...
分类:
编程语言 时间:
2015-04-03 14:49:49
阅读次数:
133