2022.8.17 闲话
不可爱的人生没有意义ww
一言?
怎么没人投稿歌词呢?
《モザイクロール》
とある言叶が君に突き刺さり
to a ru ko to ba ga ki mi ni tsu ki sa sa ri
某句言语 刺穿了你
伤口から漏れ出す液を「爱」と形容してみた
ki zu gu chi ka ra mo re da su e ki o a i to ke i you shi te mi ta
自伤口渗出的液体 将之形容为「爱」思いやりの欠如と形だけの交尾は
o mo i ya ri no ke tsu jyo to ka ta chi da ke no kou bi wa
同理体谅的缺乏及仅限形式上的交媾
腐れ縁のキミとアタシによく似ている
ku ra re en no ki mi to a ta shi ni yo ku ni te i ru
腐败的孽缘 你与我这般相似
「それでも好き…。」とか(笑)
so re de mo su ki to ka
「即使如此还是喜欢・・・。」 之类的(笑)爱したっていいじゃないか
a i shi ta tte ii ja na i ka
过去式的爱不也挺好
缚り 谁も 触れないよう
shi ba ri da re mo fu re na i you
束缚著 谁都 触碰不到似地
これも运命じゃないか
ko re mo un me i ja na i ka
这不也是命运吗
消える 消える とある爱世
ki e ru ki e ru to a ru a i se
消失 消失 在某个爱的世界终わる顷には君に饱いてるよ
o wa ru ko ro ni wa ki mi ni a i te ru yo
结束的时刻 对你已经厌倦透顶了喔
爱か欲か分からず放つことは何としようか
a i ka yo ku ka wa ka ra zu ha na tsu ko to wa na ni to shi you ka
分不清爱和欲望 放的东西该如何是好思いやりの欠如と形だけの交尾は
o mo i ya ri no ke tsu jyo to ka ta chi da ke no kou bi wa
同理体谅的缺乏 及仅限形式上的交媾
腐れ縁のキミとアタシによく似ている
ku ra re en no ki mi to a ta shi ni yo ku ni te i ru
腐败的孽缘 你与我这般相似
それでもいいから…。
so re de mo ii ka ra
即使如此也罢爱したっていうのですか?
a i shi ta tte iu no de su ka
能够说是爱过吗?
しがみついて藻掻くことを
shi ga mi tsu i te mo ga ku ko to o
紧抓不放 痛苦挣扎的事
杀したっていいじゃないか
ko ro shi ta tte ii ja na i ka
杀了有什麼不好
キミが嫌うアタシなんて
ki mi ga ki ra u a ta shi nan te
讨厌你 我呀爱したっていいじゃないか
a i shi ta tte ii ja na i ka
过去式的爱不也挺好
缚り 谁も 触れないよう
shi ba ri da re mo fu re na i you
束缚著 谁都 触碰不到似地
これも运命じゃないか
ko re mo un me i ja na i ka
这不也是命运吗
消える 消える とある爱世
ki e ru ki e ru to a ru a i se
消失 消失 在某个爱的世界
以下序列均为整数序列 .
一维偏序(离散化)
给一个序列 \(\{a_n\}\),求 \(\displaystyle\sum_{i=1}^n\sum_{j=1}^n[a_j<a_i]\) .
应用高级算法——排序,可以得到 \(O(n\log n)\) 高效算法 .
发现 \(\{a\}\) 中元素均为整数,如果值域是 \(B\),则也可以基数排序得到 \(O(\log_{base}B\cdot n)\) 的算法,其中 \(base\) 是基排进制 .
二维偏序(逆序对)
给一个序列 \(\{a_n\}\),求满足 \((i<j)\) 且 \(a_j<a_i\) 的二元组 \((i,j)\) 数量 .
两种算法:
- 归并排序:本质是 CDQ 分治 .
- 值域线段树 / 树状数组:需要先做一次一维偏序 .
以上都是很重要的,时间复杂度 \(O(n\log n)\) .
三维偏序
给两个序列 \(\{a_n\},\{b_n\}\),求满足 \((i<j)\) 且 \(a_i<a_j\),\(b_i<b_j\) 的二元组 \((i,j)\) 数量 .
直接 CDQ 分治,时间复杂度 \(O(n\log^2 n)\) .
比 k-D Tree 是要快的 .
理论 \(k\) 维偏序
给一个有 \(n\) 个元素的序列,每个元素 \(p_i\) 是一个有序 \(k\) 元组 \((p_{i,1},p_{i,2},\cdots,p_{i,k})\) .
求满足 \(i<j\) 且对于所有 \(t\in[1,k]\) 有 \(p_{i,k}<p_{j,k}\) 的二元组 \((i,j)\) 的个数 .
CDQ 套 CDQ 套 CDQ 套 CDQ 套 CDQ 套 CDQ 套 CDQ 套 CDQ 套 \(\dots\) 套 CDQ .
或者 CDQ 套 CDQ 套 CDQ 套 CDQ 套 CDQ 套 \(\dots\) 套 值域树状数组 .
或者 CDQ 套 CDQ 套 CDQ 套 CDQ 套 CDQ 套 CDQ 套 CDQ 套 \(\dots\) 套 树套树 .
时间复杂度达到优秀的 \(O(n\log^{k-1}n)\) .
半理论 \(k\) 维偏序
给一个有 \(n\) 个元素的序列,每个元素 \(p_i\) 是一个有序 \(k\) 元组 \((p_{i,1},p_{i,2},\cdots,p_{i,k})\) .
求满足 \(i<j\) 且对于所有 \(t\in[1,k]\) 有 \(p_{i,k}<p_{j,k}\) 的二元组 \((i,j)\) 的个数 .
你的算法应该是不高于 \(O(n^2)\) 的 .
考虑 k-D Tree,先做一次一维偏序,每次统计“左上角”点即可,时间复杂度 \(O(n\cdot n^{1-\frac 1k})\) .
注意到这个魔幻算法:
- 当 \(k=1\) 时是 \(O(n)\) 的,
于是我们得到一维偏序更优解法?不过是依赖值域罢了 . - 当 \(k=\frac12\) 时是 \(O(1)\) 的 .
- 当 \(k=\frac13\) 时是 \(O(1/n)\) 的,\(n\) 越大跑得越快哦!
当然上面都是瞎扯,切勿当真 .
实践比 CDQ 快一些?
\(k\) 维偏序
给一个有 \(n\) 个元素的序列,每个元素 \(p_i\) 是一个有序 \(k\) 元组 \((p_{i,1},p_{i,2},\cdots,p_{i,k})\) .
求满足 \(i<j\) 且对于所有 \(t\in[1,k]\) 有 \(p_{i,k}<p_{j,k}\) 的二元组 \((i,j)\) 的个数 .
\(n\le 40000\),\(k\le 6\),序列同一维度上每个元素构成一个排列 .
使用 word-RAM model 中的高级数据结构——Bitmap,写作 std :: bitset
.
如果我们知道对于一个 \(k\) 维向量 \((p_1,p_2,\cdots,p_k)\),对于每一维 \(p_i\),比它小的数构成的集合是 \(S_i\),那么答案集合就是 \(S=S_1\cap S_2\cap\cdots\cap S_k\) .
这个直接 bitset
即可,我们设想如果我们知道第 \(k\) 维为 \(i\) 时,小于它的向量的编号集合,用一个长度为 \(n\) 的 bitset
表示,查询的时候就直接返回这个 bitset
就好了嘛 .
然而这玩意空间 \(O(n^2k/w)\),就算带 \(\dfrac1w\) BUFF 还是不行 .
于是献祭高级数据结构——分块,因为是单独考虑每一维的集合的一个前缀,所以块尾储存关于大小的前缀集合就可以了,类似分段打表 .
分段打表大家都会吧?就不详细说了 .
然后空间就是 \(O(n^{1.5}k/w)\),这样就可以了 .
时间复杂度自然是 \(O(nk/w)\) 预处理,\(O(n^{1.5}k/w)\) 回答询问 .
顺便提一下这个可以支持强制在线 .
\(k\) 维偏序 (High)
给一个有 \(n\) 个元素的序列,每个元素 \(p_i\) 是一个有序 \(k\) 元组 \((p_{i,1},p_{i,2},\cdots,p_{i,k})\) .
求满足 \(i<j\) 且对于所有 \(t\in[1,k]\) 有 \(p_{i,k}<p_{j,k}\) 的二元组 \((i,j)\) 的个数 .
\(n\le 2\times 10^2\),\(k\le 10^3\) .
使用高级算法——XIN 队算法,达到了高效的 \(O(n^2k)\) .
因为种种原因,解决前面问题的算法常数打不过 XIN 队 .
以下是博客签名,正文无关
本文来自博客园,作者:Jijidawang,转载请注明原文链接:https://www.cnblogs.com/CDOI-24374/p/16589709.html
版权声明:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议(CC BY-NC-SA 4.0)进行许可。看完如果觉得有用请点个赞吧 QwQ