码迷,mamicode.com
首页 > 其他好文 > 详细

[题解+总结]20150808

时间:2015-08-09 00:10:50      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:

1、前言

好久没有写考试总结了,因为没怎么考试(好废话的感觉)。今天考的稀下的,还是因为考试的时候状态不好,一些很傻逼的方法想不出来,反而去写还不熟练的什么鬼平衡树了。看了题解之后确实觉得没有什么很难的知识点,都是基础。所以以后还要加强一些基础方面的东西。

 

2、Toy 玩玩具

大概题意:一条带权值的链,现已知每次插入的位置以及其权值,求最终链的状态。

题解:一开始就想着写Splay,的确可行,但是还不够理解,所以半天没有完全写出来。确实这道题不需要用到Splay,如题解所言:

     “因为已经提醒过考试范围没有超过 NOIP,所以标程算法并不是平衡树。虽然实际情况是按时间顺序向长链中插入元素,但是随着元素的插入,链也不断发生着变化,这样除了模拟之外没有其他很好的算法。所以,我们不妨用逆向思维去思考这个问题。 如果是逆着插入点,首先,对于每一个元素 i,在它之前必有 k[i]-1 个空元素(也就是在它之 前插入的未知元素),而且对于最后插入的那个元素 n,它的最终位置必为 k[n]+1,并且不会再发生移动。 再来考虑插入的第 n-1 个元素, ① 如果 k[n-1]<k[n],那么第 n 个元素的插入不会影响到它的最终位置,所以它的最终位 置为 k[n-1]+1,满足它之前有 k[n-1]-1 个空元素。 ② 如果 k[n-1]>=k[n],如果它仍然要插在 k[n-1]+1 的位置,那么第 n 个元素的插入使它 之前的空元素个数为 k[n-1]-2,小于 k[n-1]-1。这样会导致在它之前插入的点的个数大 于所能提供的位置数,则它必须插在之前有k[n-1]-1个空元素的位置,也就是k[n-1]+2。 然后对于这之前的每一个元素 i,都必须插在之前有 k[i]-1 个空元素的位置(当然那个位置 也要为空) ,所以只要从头开始数,数到有 k[i]个空元素的位置,将其插入。 朴素算法是 n^2 的,所以可以用树状数组维护,线段树也可以。”

 

3、Guinness 吉尼斯纪录

又是一道什么鬼链表,今天的画风好像有问题。

 

[题解+总结]20150808

标签:

原文地址:http://www.cnblogs.com/jinkun113/p/4714076.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!