首页 > 其他分享 >12月做题记录

12月做题记录

时间:2024-12-16 20:32:06浏览次数:10  
标签:12 记录 复杂度 枚举 做题 众数 区间

12月做题记录

✩ trick
✯ 会大部分,要\(tj\)提示
✬ 会小部分/完全没想到,看了\(tj\)才会
◈ 脑电波
✡ 有某一算法的神秘通用性质
⊗ 待补

目录

CF1725K Kingdom of Criticism

考虑并查集,每次把\([l,r]\)内存在的点都提出来分别挂到\(l-1/r+1\)上然后删除,如果没有\(l-1/r+1\),新建一个点即可

注意到点的级别是\(O(N)\)级别的且增删对某个点都是\(O(1)\)的,所以总复杂度\(O(N\alpha(N))\)

CF1446D2 Frequency Problem (Hard Version)

如果给定的序列就没有绝对众数,那么直接输出\(n\),否则考虑证明:

最终的答案中的众数中一定有原本的序列的绝对众数

如果不满足的话,显然可以把当前区间拓展且不劣

根号做法 ✬

考虑枚举最终的众数的数量,给一个阈值\(B\),那么直接双指针维护即可得到每个左端点对应的最大的右端点

这里的复杂度是\(O(BN)\)的

考虑当数量\(>B\)时,此时同样为众数的其他数值只有\(O(\frac NB)\)个,现在再来枚举同为众数的数值

设最初的绝对众数为\(A\),现在枚举的另一个为\(B\),只需要给一个序列\(c_i\)赋值为\(c_i=\left\{\begin{aligned}&1&&a_i=A\\&-1&&a_i=B\\&0&&otherwise \end{aligned} \right.\),那么只需要满足一个区间内的\(c_i\)的和为\(0\)即可,这个用前缀和即可处理

当然有可能会出现当前区间内真正的众数既不是\(A\)也不是\(B\)的情况,但显然这种情况是劣的,所以不管,复杂度\(O(\frac NBN)\)

取\(B=\sqrt N\),则总复杂度\(O(N\sqrt N)\)

线性 ✯✩

显然,如果我们依旧是枚举另一种值\(B\),那么只需要找到最长的区间使得\(A\)的数量和\(B\)的数量相同,若他们不是这段区间的众数,那么这段区间一定劣

对于一个\(l\),发现我们的最优区间\([l,r]\)满足\(a_{l-1}=A/B\),\(a_{r+1}=A/B\)且\([l,r]\)内的\(A\)、\(B\)数量相等,若依旧沿用上面提到的\(c_i\),注意到区间和的变化是连续的,也即说明,对于\(r'>r\),那么\([l,r']\)一定全\(>0\)或全\(<0\)

考虑这样一种方法,枚举\(B\)的位置\(x\),每次把\(x\)且没被标记的\(A\)的后继给标记,然后还原,然后再标记前驱,这里其实顺序无所谓,怎么弄都是那些点

显然此时从没被标记的\(A\)一定不会出现在最终的区间\([l,r]\)中,那么显然现在只有\(O(|A|)\)个点,直接用上面的\(1/-1\)的方法即可

只需要记录\(pre_i\)表示\(\leq i\)的\(A\)的最大位置和\(suf_i\)表示\(\geq i\)的\(A\)的最小位置即可做到线性

复杂度\(O(N)\)

标签:12,记录,复杂度,枚举,做题,众数,区间
From: https://www.cnblogs.com/LuoyuSitfitw/p/18608792

相关文章

  • 练12:双指针
    欢迎大家订阅【蓝桥杯Python每日一练】专栏,开启你的Python数据结构与算法学习之旅!文章目录前言1同向扫描2反向扫描3同向扫描与反向扫描的对比4例题分析2.1回文判定2.2美丽的区间2.3挑选子串前言双指针是一种常用于数组和链表类问题中,指的是用两个指针......
  • Spark向量化计算在美团生产环境的实践12
     1什么是向量化计算1.1并行数据处理:SIMD指令让我们从一个简单问题开始:假设要实现“数组a+b存入c”,设三个整型数组的长度都是100,那么只需将“c[i]=a[i]+b[i]”置于一个100次的循环内,代码如下:voidaddArrays(constint*a,constint*b,int*c,intnum){for(in......
  • 【YashanDB知识库】kettle同步PG至崖山提示no encryption pg_hba.conf记录
    【问题分类】数据导入导出【关键字】数据同步,kettle,数据迁移,pg_hba.conf【问题描述】使用kettle同步postgresql至崖山数据库时提示以下报错信息:【问题原因分析】pg_hba.conf文件中没有正确配置允许从IP地址连接到数据库的规则。pg_hba.conf文件是PostgreSQL中用于控制......
  • 20241216
    会议室类,会议中心类,管理员类,会议申请类,会议人员类会议室类:属性:会议室号,可容纳人数,状态,使用时间方法:会议中心类:属性:会议申请方法:通知开会(),制作代表证()管理员类属性:方法:修改会议(),调整会议()会议召开申请类:属性:申请人姓名,会议人数,开会时间,会议人员方法:修改会议申请(),取消会议......
  • 2024.12.10(周二)
    机器学习大作业importpandasaspdimportnumpyasnpimportseabornassnsimportmatplotlib.pyplotaspltfromsklearn.model_selectionimporttrain_test_split,cross_val_score,GridSearchCVfromsklearn.preprocessingimportStandardScalerfromsklearn.line......
  • 【2024-12-15】连岳摘抄
    23:59责任使我们看到自身的价值、生活的意义,并可摆脱人生的诸多烦恼。                                                 ——约翰卢伯克以我知天命的年龄,深知,平淡无......
  • 加图会计实操- 商业-杰丽尔童装商贸(2024.1)-一般纳税人-做账-20241216
    1.2024-01-11   业务15进项发票认证1月11日,1-10日待认证进项发票认证。不需要做账务处理;2.2024-01-12   业务17缴纳2023年12月份社保费和个税1月12日,缴纳社保费、个税。公司承担的社保费,计提时(管理费用、财务费用),直接应付职工薪酬-社保;缴纳时,应付职工薪酬-社保,银行存款......
  • 24.9~11 好题 & 杂题记录
    构造题&交互题不必最优化的题目加入一些更严的限制会更好做【1,4,5】递归思想or将大问题分解成小问题拼接起来【6】\(A\toB\LeftrightarrowA\toC\toB\LeftrightarrowA\toC(C\toA),B\toC(C\toB)\)【2,3】正难则反,特别是后面限制严格强于前面的【8】只要多种方......
  • 11.12
    奔腾体系结构后,英特尔提供了一个叫作时间戳计数器(TimeStampCounter,TSC)的硬件寄存器。TSC 是一个从处理器时钟中计算时标数的 64 位寄存器。RDTSC 指令可以非常快地访问该寄存器。自 Windows2000 问世后,可以通过调用函数 BOOL Query PerformanceCounter(LARG......
  • 2025春招Java 面试必刷的1200 道Java大厂面试真题(含答案解析)
    2025春招即将来临,很多同学会问Java面试八股文有必要背吗?我的回答是:很有必要。你可以讨厌这种模式,但你一定要去背,因为不背你就进不了大厂。国内的互联网面试,恐怕是现存的、最接近科举考试的制度。而且,我国的八股文确实是独树一帜。以美国为例,北美工程师面试比较重视算法(Cod......