首页 > 其他分享 >多校 A 层冲刺 NOIP2024 模拟赛 06

多校 A 层冲刺 NOIP2024 模拟赛 06

时间:2024-10-13 08:59:35浏览次数:6  
标签:颜色 复杂度 位置 多校 异或 答案 区间 06 NOIP2024

多校A层冲刺NOIP2024模拟赛06

T 小 Z 的手套(gloves)

签到题

答案显然具有单调性,排序后二分答案即可。

T 小 Z 的字符串(string)

签到题

注意到 \(n\) 较小,可以使用 \(O(n^3)\) 的算法,直接上大 \(DP\)。

设计状态 \(f_{i,j,k,0/1/2}\) 表示从左往右填到 \(i\) 位,已经填了 \(j\) 个 \(0\),\(k\) 个 \(1\),且第 \(i\) 位为 \(0/1/2\) 时所需最小花费。

转移直接大分讨即可,注意交换的过程中位移是相对的,每一次交换移动是双向的,所以目的位置具有一个偏移量,可以提前预知,所以最后直接交换的答案应减半。

T 一个真实的故事(truth)

线段树,分块

类似山海经直接合并即可。

全局查询竟然是 \(O(1)\),竟然不用考虑平衡复杂度!

时间复杂度瓶颈在修改操作为 \(O(qklogn)\)。

口胡一个在线跟 $k$ 无关做法

首先有一个 naive 的想法,对每个点维护所有颜色在它右边第一次出现的位置,将它视作答案的左端点则右端点为这些位置中的最大值,然后注意到很多点的某些颜色的第一次出现的位置其实是同一个位置,利用这个性质。

考虑分块,整块维护块内点所用位置第一次出现统一颜色的位置,块内单点维护不同第一次出现颜色的位置,这个可以用 set 维护,然后对每个块建一颗线段树直接维护每个点的答案(只计算自己独立最大的位置)支持区间查询最小值。

以下统一记 len 为块长, t 为块的个数。

初始化 会对每个块遍历一次所有颜色,直接硬塞即可,时间复杂度为 \(O(ktlogn)\)。

修改 注意到本质上是区间修改变动颜色前驱到该位置之间块的公共颜色,以及前驱和该位置所在块的独立颜色,时间复杂度为 \(O(lenlogn)\)

答案查询 遍历所有块,二分第一个独立颜色小于公共颜色的点然后更新答案,再在线段树上插叙这个点以右的最小值更新答案,时间复杂为 \(O(tlogn)\)。

当 \(t,len\) 相等时理论复杂度最优为 \(O(n\sqrt n logn)\),但由于常数原因个人感觉将块长调大一点实际会更好。

懒得写了 ...摆摆摆摆

T 异或区间(xor)

笛卡尔树,启发式合并,trie,RMQ,分治

全是套路。

考虑弱化小于等于 max 的限制,即考虑每个值所能影响的区间,由此想到到在笛卡尔树上分治。具体的每次找到当前区间的最大值设为 \(mid\),然后分别 \([l,mid-1],[mid+1,r]\) 进行分治,合并的时候由于和左右区间长度不一样,考虑使用较小的区间去算贡献,然后时间复杂度就变为了启发式合并的时间复杂度。考虑怎么算贡献,建一颗 trie 树,维护前缀异或和,每次计算异或上一个值(即能表示区间异或和)且小于等于每一个值的个数,板子直接套就行了。trie 树更新同启发式合并,把少的往多的插,然后继承给父亲即可。

时间复杂度为 \(O(nloglogV)\)。

p

标签:颜色,复杂度,位置,多校,异或,答案,区间,06,NOIP2024
From: https://www.cnblogs.com/07Qyun/p/18461874

相关文章

  • [赛记] 多校A层冲刺NOIP2024模拟赛05
    这场数数好数(number)100pts找三个数的和,而且允许$\Theta(n^2)$,那么我们可以维护出两个数的和,然后每次顺序遍历找这个数减去前面的某个数在任意两个数的和中有没有出现过,这个也是$\Theta(n^2)$的;所以时间复杂度:$\Theta(n^2)$,如果带$\log$会过不去,要用桶维护;点击......
  • 第106天:权限提升-WIN 系统&AD域控&NetLogon&ADCS&PAC&KDC&CVE 漏洞
    知识点1、WIN-域内用户到AD域控-CVE-2014-63242、WIN-域内用户到AD域控-CVE-2020-14723、WIN-域内用户到AD域控-CVE-2021-422874、WIN-域内用户到AD域控-CVE-2022-26923WIN-域控提权-CVE-2014-6324前提条件:1、需要域环境下一台主机普通用户账号密码2、一台主机的管理员权......
  • 多校A层冲刺NOIP2024模拟赛04
    02表示法直接递归即可,稍微写个高精。点击查看代码#include<bits/stdc++.h>usingnamespacestd;//#defineint__int128constintN=1e4;strings;intb[N],c[N],len;inta[N],tot;intread(){ intf=1,s=0;charch=getchar(); while(ch<'0'||ch>'9......
  • 多校A层冲刺NOIP2024模拟赛05
    好数(number没啥好说的直接\(O(n^2)\)枚举即可。点击查看代码#include<bits/stdc++.h>usingnamespacestd;constintN=2e6+107;constintd=2e5;intn,a[N],sum[N];intread(){ intf=1,s=0;charc=getchar(); while(c<'0'||c>'9'){if(c==�......
  • [46] (多校联训) A层冲刺NOIP2024模拟赛06
    HDK在与mt19937_64先生的石头剪刀布比赛中拿下十一连败的好成绩你也来试试吧#include<bits/stdc++.h>usingnamespacestd;#include"include/hdk/rand.h"usingnamespacehdk::Rand;chargetchar_(){charch=getchar();if(ch>='a'andch<='z......
  • 多校A层冲刺NOIP2024模拟赛06
    rank19,T1100pts,T230pts,T345pts,T420ptsT1小Z的手套(gloves)二分答案,贪心匹配\(O(n\logn)\)的check即可。时间复杂度\(O(n\log^2n)\)点此查看代码#include<bits/stdc++.h>#include<bits/extc++.h>//usingnamespace__gnu_pbds;//usingnamespace__gnu_cxx;usi......
  • ABB机器人备件3HAC035065-003
    ABB机器人备件3HAC035065-003是一款重要的伺服电机备件,对于确保ABB机器人的正常运行至关重要。以下是对该备件的详细解析:一、备件信息型号:3HAC035065-003类型:伺服电机备件适用品牌:ABB应用:主要用于ABB机器人的关节驱动,是机器人运动控制的关键部件。二、备件特点与优势高性能......
  • 2006-2023年上市公司社会责任报告、ESG报告文本(TXT)
    2006-2023年上市公司社会责任报告、ESG报告文本(TXT)1、时间:2006-2023年2、范围:A股上市公司3、样本量:14279份4、说明:上市公司社会责任报告是企业对外公布的一份关于其社会责任实践和成果的详细文件,涵盖环境保护、社会贡献和公司治理等方面的表现。通常包含公司在减少环境影响......
  • 《GESP2级2306》 解析
    一、单选题(每题2分,共30分)1.高级语言编写的程序需要经过以下(D)操作,可以生成在计算机上运行的可执行代码。A.编辑B.保存C.调试D.编译在高级语言编程过程中,要生成在计算机上运行的可执行代码,需要经过一系列的操作。针对给出的选项,我们可以逐一分析:A.编辑-这是......
  • 《GESP3级2306 单选题判断题》 解析
    描述一、单选题(每题2分,共30分)1.高级语言编写的程序需要经过以下(D)操作,可以生成在计算机上运行的可执行代码。A.编辑B.保存C.调试D.编译这是一道关于程序开发流程的问题。我们来逐一分析各个选项,并确定哪个操作是生成可执行代码的关键步骤。‌编辑(A选项)‌:编辑......