「考试」老司机的狂欢

啊考场上没想到。

直接二分答案,然后$nlogn$求解最长上升序列来$check$是否大于$K$即可。

然后恶心的是要求输出方案,而且。。。字典序最小。

我们考虑二分出答案之后求出方案。

$LIS$的过程其实类似于建树,我们要把当前的决策挂在当前树上某一深度的点中,字典序最小的方案下面。

那么当我们比较两个方案的时候,只需要求出他们在$LIS$树上的$LCA$,那么在$LCA$以上的部分完全相同,所以只需要比较他们在$LCA$一下的部分中最小值的大小,较小的更优,一边跑$LIS$一边跑倍增$LCA$即可。

复杂度$O(nlognlog88400+nlog^2n)$

原文地址:https://www.cnblogs.com/Lrefrain/p/11702737.html

时间: 2024-08-30 12:38:46

「考试」老司机的狂欢的相关文章

「珍藏」老司机为你推荐10个炫酷的开源库,看完的人都收藏了

前言 技术群里面经常有人问到一些炫酷的UI效果实现方法,有时候我都是给一个相同或者相似效果的Github链接,有同学私信给我说,大佬,怎么这些效果你都能找到?你是怎么搜索的,或者有其他什么秘方?会利用Google.百度等搜索工具搜索是一方面,另一个重要的方面是:记录搜藏,当看到一个炫酷的效果的时候,记得收藏起来,记录到自己云笔记或者收藏夹里,看得多了,印象就比较深刻,当遇到类似效果的时候,到自己记录收藏的地方找就是了.今天为大家推荐我所收藏的一些炫酷实用的效果的开源库(选择其中10个). 1.D

@loj - [email protected] 「CQOI2017」老 C 的方块

目录 @[email protected] @[email protected] @accepted [email protected] @[email protected] @[email protected] 老 C 是个程序员. 作为一个懒惰的程序员,老 C 经常在电脑上玩方块游戏消磨时间.游戏被限定在一个由小方格排成的 R 行 C 列网格上,如果两个小方格有公共的边,就称它们是相邻的,而且有些相邻的小方格之间的公共边比较特殊. 特殊的公共边排列得有很强的规律.首先规定,第 1 行的前两个

「考试」weight

正解是树剖. 首先Kru求最小生成树. 然后分别考虑树边和非树边的答案. 首先是非树边,非树边链接的两个点在MST上能够构成一条链. 这条链上最大的那条边-1就是这条边的答案. 为什么. 模拟Kru的过程.如果这条边在树上那一条之前的话.这条边的起点和终点两个集合必然还没有链接. 因为之前那树上那一条断了树链就断了. 那么这条边会成为树边. 然后是树边. 树边的答案就更加浅显一点了,我们的非树边会威胁树边的地位. 也就是说在非树边可能到达某一个树边前面的话,这条边就会成为树边. 那么这条非树便就

「考试」糊涂图

不知道为啥达哥说简单...... 考场上打了俩小时啥也没写出来导致崩盘了. 但是真的是好题啊. 要求在$NIM\ DAG$上随意加一条边,这条边只能走一次,求$Nim$博弈的胜率最大值和平均值. 考虑求出两个数组$dp[i]$和$g[i][0/1]$ $dp[i]$表示到达的地方是$i$的情况下不论是谁的胜率. $g[i][0/1]$表示到达的点是$i$的情况下,当前要走的人是达哥/B哥的概率. 两个数组都很好求,第一个反向拓扑即可,叶子节点都为0. $$dp[t]+=\frac{(1-dp[x

「考试」小P的生成树

考场上想到一半正解,没想到随机化,不然也许能够$A$掉. 题目所说的其实就是向量加法,求模长最长的向量生成树. 我们考虑对于两个向量,必然在平行边形对角线方向上,他们的投影和是最大的,长度就是对角线长度. 如果精度开到$1e-3$我们完全可以枚举最终的和向量的角度,因为只有在对角线,也就是正确的方向上,向量的模长才是最大的,所以也就是说即使枚举的角度不可构成,它得出的解也必然不是最优解. 但是精度开的很高,枚举复杂度过高了.(随机化角度就能A) 接着考虑对于某条向量有两种表达形式: 1.$(\a

「考试」$5T$

啊因为最近题实在是好啊,只能四五篇四五篇写了. T1. 括号序列的确简单. 当我们维护左右$cnt$后. 到一个左括号的地方的话. 答案就是:$$\sum\limits_{i=1}^{min(lc,rc)}\binom{lc-1}{i-1}\binom{rc}{i}$$ 因为要固定一个来去重. 等价于: $$\sum\limits_{i=0}^{n}\binom{n}{i}\binom{m}{i}=\sum\limits_{i=0}^{n}\binom{n}{n-i}\binom{m}{i}$$

「考试」省选5

这套做的比较顺. 题也很好. T1 一个简单的贪心. 我们二分能够无伤通过的蛤个数. check就用之前用烂了的队列来check. 然后我们知道无伤通过最多一定对应这所有的石头被踩完,因为这样可以让每只蛤单次跳跃距离的最大值尽量的小. 这也就是说两种最优操作是合在一起的,有点像\(CSP-2019 D2T2\). 那么,二分出来剩下的就是必然要跳出大于\(D\)的了,我们取最小的几只,让他们一步从\(1\)跳过去. 另外一种情况是没有蛤可以无伤过. 这时候就让最便宜的那只去踩地雷,踩过所有的石头

「考试」省选7

比较简单的一场,但是我好像做的xibalan. 上来看了一小时题啥也不会. 然后发现\(T2\)数据范围像是分块. 然后傻逼一样去打根号算法. 最终结果当然是死了,到九点半也没写出来. 然而早就会\(T1\)正解了,于是先五分钟拿了\(T3\)的30分(为啥60那么好打..). 然后半个小时打完\(T1\)(临接表被卡常到90?) 然后继续搞T2最后弄出来了. 剩下十分钟啥也没干,三分块长从\(12s\)变成了\(2s\). T1 原题,\(xor\)差分之后就没了. T2 数据结构题毫无思维难

「考试」省选模拟12

状态不好考的不行(x 还是在家里不够专注吧(? T1 一个简单的离散化+bfs 细节不少 一个区间直接把两个端点都离散进去就行了. 统计答案的时候按块统计答案. T2 减枝的搜索. 不是特别难. 发现其实格子并不是很多. 被\(K\)给限制住了. 太多的都是0. 那么\(n+m-1\)的大小必然是小于等于10的. 直接爆搜. 剪枝要用到一个小技巧. 当前如果许多个颜色并没有放过,那么我放上一种颜色搜索一下得到答案,那么这几个颜色是等价的可以直接不重复搜索,然后将答案乘上个数. T3 挺厉害的\(