将Hexo变得更加优美
本篇博文长期维护,如果找到了新的优化马上会放上来啦
Think Twice Code Once
本文介绍的并非正解,而是高效的暴力
给定一个含有n个数的序列$a[1],a[2],a[3]……a[n]$,程序必须回答这样的询问:对于给定的i,j,k,在$a[i],a[i + 1],a[i + 2]……a[j]$中第k小的数是多少($1 ≤ k ≤ j - i + 1$),并且,你可以改变一些$a[i]$的值,改变后,程序还能针对改变后的a继续回答上面的问题.
第一行有两个正整数n($1≤n≤50000$),m($1≤m≤50000$)。
分别表示序列的长度和指令的个数.
第二行有n个数,表示$a[1],a[2]……a[n]$,这些数都小于$10^9$。
接下来的m行描述每条指令
每行的格式是下面两种格式中的一种.
$Q\,i\,j\,k$
或者
$C\,i\,t$
$Q\,i\,j\,k$ (i,j,k是数字,$1≤i≤j≤n$, $1≤k≤j-i+1$)
表示询问指令,询问$a[i],a[i+1]……a[j]$中第k小的数.
$C\,i\,t$ ($1≤i≤n$,$0≤t≤10^9$)表示把$a[i]$改变成为t
后缀数组是什么呢,懒得说了,直接上概念吧.
后缀数组$sa[i]$就表示排名为i的后缀的起始位置的下标
它的映射数组$rk[i]$就表示起始位置的下标为i的后缀的排名
简单来说,sa表示排名为i的是啥,rk表示第i个的排名是啥
斐波那契序列${A}$满足:$A_i = A_{i - 1} + A_{i - 2}$
给出一个序列${C}$,求其中的最长斐波那契子序列
入手 Ubuntu 时用的是NoiLinux(黑暗回忆),后来经大佬介绍转入 Ubuntu Budgie 18.04 LTS .第一眼看上去界面相当精致,改下配色之后更是把 kewth 的 gnome 和 xfce 吊起来打.