首页 > 其他分享 >20240918 模拟赛

20240918 模拟赛

时间:2024-11-08 15:19:29浏览次数:1  
标签:20240918 log 2s 复杂度 sqrt 模拟 dp

20240918 模拟赛

A String

B Pack

看这个数据范围很容易想到 dp,设 \(f_{i,,j,k}\) (pair<int,int>)表示前 \(i\) 个物品,拿走 \(j\) 个 \(1\),\(k\) 个 \(2\) 所用的最少车数,以及最后一辆车所用的最少空间。转移分当前这个拿不拿掉讨论,非常显然。

最后枚举总共拿了几个 \(1\) 和几个 \(2\),如何算出所用的车数?注意到显然可以能放 \(2\) 就放 \(2\),不能放就放 \(1\),这样显然最优。dp 和统计答案都是 \(O(n^3)\) 的。可能会卡空间?滚动一下就好了。

C Weight

赛时爆搜拿了 70?

构造结论题。注意到每次 L 与 R 转换时显然放在对应位置上,不可能放到对面。如果前面的数放的太大了,后面转换时数可能会不够大。于是可以想到先在每个 L 或 R 的连续段开头从小到大放上前 \(k\) 大的数。剩下的位置从大到小正负交替放即可。

D 序列

考虑设置一个阈值 \(B\),出现次数小于 \(B\) 的数统一暴力做,这样的区间长度小于 \(2B\),所以时间复杂度\(O(nB)\)。

对于次数大于 \(B\) 的数 \(x\),设 \(b_i=[a_i=x]\),\(s_i\) 为 \(b_i\) 的前缀和,那么一个存在绝对众数的区间 \([i,j]\) 就满足 \(s_i-s_{j-1} > i-j+1-(s_i-s_{j-1})\)。移项即得 \(2s_i-i > 2s_{j-1}-(j-1)\),变成一个二维偏序问题。这就可以用树状数组计数了。这样的数 \(x\) 一定不超过 \(\frac{n}{B}\) 个,所以时间复杂度 \(O(\frac{n^2\log n}{B})\)。

最后计算出当 \(B=\sqrt{n\log n}\) 时复杂度最优 \(O(n\sqrt{n\log n})\)。但是这样常数较大,取 \(B=\sqrt n\) 就能通过。

标算是线段树,还有大神说可以线性。%%%

标签:20240918,log,2s,复杂度,sqrt,模拟,dp
From: https://www.cnblogs.com/luyuyang/p/18535161

相关文章

  • 20240914 模拟赛
    20240914模拟赛A开挂(openhook)可以发现结果序列是能确定的,而且我们并不关心具体对哪个数进行操作,有用的信息只有操作次数,从而可以得到一个数组\(c\)表示对某个数操作了某个次数。设对\(tot\)个数进行了操作,将\(c\)从小到大排序,将\(b\)中的前\(tot\)小从大到小排序,于......
  • Chromium 进程降权和提权模拟示例c++
     一、背景知识概念参考微软链接:强制完整性控制-Win32应用程序|Microsoft学习授权)(模拟级别-Win32apps|MicrosoftLearnDuplicateTokenEx函数(securitybaseapi.h)-Win32apps|MicrosoftLearn本文主要演示 low,medium,high,andsystem四种权限创建......
  • C++:模拟实现STL的list
    目录一.list类1.list的创建节点2.list迭代器的运算符操作3.list的构造函数及析构4.list的迭代器5.list的插入及删除二.整体代码1.list.h2.list.cpp在上一节已经了解list在库中的用法,在这里实现list的底层逻辑一.list类1.list的创建节点template<classT>struc......
  • [赛记] NOIP2024加赛1 && 多校A层冲刺NOIP2024模拟赛18
    暴力错解大赛玩游戏82pts乱糊的错解,正确性和时间复杂度都不对,但是拿了82pts;对于正解,考虑从$k$将原序列分成两个部分,左边和右边,然后分别求一次前缀和(注意这里,可以省去很多分讨和常数),设前一个前缀和数组为$a$,后一个为$b$,那么问题就转化成有两个指针$i,j$,可以任......
  • NOIP 模拟 7
    T1图书管理(book)考虑每个数做中位数的贡献,经典trick就是小于的为\(-1\),大于的为\(1\),前缀和相减为\(0\)的就合法,不会链表。T2两棵树(tree)又是经典trick,森林的连通块数为点数减边数,证明就是算树的数量,好像之前见过这个trick。然后把贡献拆开,\(e\)代表点,\(v\)代......
  • 多校A层冲刺NOIP2024模拟赛19
    多校A层冲刺NOIP2024模拟赛19其实不太想写博客,但还是从今天开始坚持写吧。T1图书管理对于这种一边大一边小的问题,一般套路是大的设为$1$,小的设为$-1$,这道题也是,这样之后去扫一遍,两端的前缀和值一样即可。T2两棵树新学到的一个重要$trick$是:$$连通块的个数......
  • C# 队列的一些并发模拟
    usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Threading;usingSystem.Collections.Concurrent;namespace......
  • 【记录分享】多任务黑客攻击仿真模拟器
     在电影和电视剧中,黑客攻击的场景往往充满了紧张、快速的打字声和不断滚动的命令行界面。为了让这种体验更具沉浸感,我们可以通过编程模拟出一个真实的黑客攻击过程。本篇文章将介绍如何使用Python和Tkinter库设计一个多任务黑客攻击仿真模拟程序,包含攻击模拟、网络带宽......
  • [63] (多校联训) A层冲刺NOIP2024模拟赛19
    lhx对\((\lnn)^{\lnn}\)求导求出一个形如\(\frac{1}{n\lnn\ln\lnn}\)的东西A.图书管理说一种很好玩的\(n^2\logn\)做法(因为动态中位数我只会这个)对顶堆:就是你开一个大根堆和一个小根堆,然后把它们怼在一起,钦定比中位数大的放小根堆,小的放大根堆,这样中间就是中位......
  • 11月7日 NOIP模拟(难题math、矩阵游戏matrix、括号序列seq、道路road) - 模拟赛记录
    PrefaceT1试图找规律失败,正经推反而几分钟就出来了。以后应该少想这些歪门邪道(除非实在闲的蛋疼或者没有一点头绪,且必须要打完所有能打的子任务比如暴力或特殊性质;而且必须在用常规方法思考过后,才能够用一些稍微不那么常规的方法)至于T2、T3、T4,因为知道T1浪费了太多时间,都是......