长沙一中集训Notes(Day 4)

Day 4

似乎还有一天就要结束在长沙一中五天的集训了呢=u 那么今天就稍微写一点废话感想吧
四天的题目,不得不说,基本都值得一做(AK的dalao们务必装作没看见!!!)。每一天的题目都能学到新的东西=v(比如Day 1的考场打线段树,Day 2的矩阵加速,Day 3的乘法逆元,以及今天的常数优化、DP推导等)
那么,来看看今天的题吧!=v

T1 贪吃蛇

第一题终于不是毒瘤数论啦!读完题面就能发现这是一道模拟题,使用队列保存蛇的身体所在的坐标,就能轻松愉快地AC第一题。
然而!对于边界条件的判断咱手抖打错了 == 于是100->85 == 无比快乐

T2 分糖果

根据提高组的惯例,T2又一次考察了DP。本题是Luogu上的一道原题
对于题目中给出的条件进行分析,可以发现

T3 排序

是的没错!这次的T3也需要用到求逆序对。不过这次更加直接,题面中直接要求求逆序对==
那么,该怎么处理呢?理解题意,发现对于前50%的数据可以使用O(mn\ log\ n)的算法,即对于每次询问,在数组中选取小于p_{i}的元素,放入另一个数组中,对这个数组进行排序后依次放回后求一遍逆序对即可。
但显然,该算法的时间复杂度还不够优秀,在测试中只能获得50分的成绩。考虑如何优化。对于每一个数字,发现经过排序后每一个数字都不会产生逆序对,并且之后也不会再产生逆序对。那么,我们可以预处理每一位数字之后比它小的数字,即逆序对个数,每次询问时将其减去即可。
然而,我们仍需要花费O(n)的时间对数字进行选取。现在考虑一种更优的做法。我们维护对于每个下标区间中的最小值,每次询问时从a[p_{i}]到最小值这个区间中的逆序对个数减去即可。注意到一个数字只会导致总逆序对个数减小一次,那么,该算法的期望时间复杂度为O((n+m)\ log\ n)

下午终于认出了CYJian巨佬(原来巨佬每天都给我们讲题啊QwQ) 晚自习颓了一会slay顺便被天泽龟吊打。回到宾馆摸完这篇日记=u

评论

  1. CYJian
    6 年前
    2018-11-02 16:59:20

    被您模拟赛吊打了QA

    • Nerlci_
      博主
      CYJian
      6 年前
      2018-11-02 17:20:05

      您每天AK啊Qw

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇