首页 > 其他分享 >NOIP2024集训Day65 贪心

NOIP2024集训Day65 贪心

时间:2024-10-31 19:19:52浏览次数:1  
标签:队列 个数 Day65 贪心 NOIP2024 逆序

NOIP2024集训Day65 贪心


A. [NOI2015] 荷马史诗

简化题意,即构造一颗 \(k\) 叉树,每个节点的权值为其所有孩子的权值之和,给定的 \(n\) 个数必须使用,其余空缺处用 \(0\) 补全。

考虑使用优先队列,首先弹入 \(n + (n-1) \% (k-1)\) 个元素(不足处用 0 代替),然后每次弹出前 \(k\) 小的数并插入其和,直到优先队列中只剩余一个元素。计算时同时保存深度。

由于优先队列默认从大到小排序, 而用 pair 比较方便, 所以处理时我们将队列中的数取反,计算结果时再次取相反数。


B. [CCO2020] Exercise Deadlines

题目可以转化成:构造一个排列,满足 \(p_i≤d_i\),要求 \(p\) 逆序对个数尽可能少。

直接贪心,从后往前贪心取没有被取的数且 \(\le d_i\) 中最大的。容易证明取更小的会使逆序对个数增加,并且更不容易合法。

最后再求一遍逆序对个数,复杂度 \(\Theta(n\log n)\)。


D. [HNOI2015] 菜肴制作

如果用一个小根堆来维护拓扑的话显然是不行的,因为这样求出来的是字典序最小的拓扑序,并不一定是 \(1\) 尽可能在前,因为字典序是贪心的,如果前面的一位能小就尽可能的小,并不保证 \(1\) 出现尽量靠前。

但是如果建一个反图,求一个反向字典序最大的拓扑序,那就会有大的数尽量靠前的情况出现,于是较小的数尽量靠后,于是反过来就是较小的数尽量靠前了。

所以反着建图,用大根堆维护,然后反向输出就好了。


标签:队列,个数,Day65,贪心,NOIP2024,逆序
From: https://www.cnblogs.com/Leirt/p/18518705

相关文章

  • 『模拟赛』多校A层冲刺NOIP2024模拟赛16
    Rank依托,给我烂完了(A.四舍五入唐题,赛时被硬控3h。发现枚举\(i\)是一个很没前途的选择,分成三段后仍然需要\(\mathcal{O(n)}\)去跑\(\left[1,\lfloor{\frac{i}{2}}\rfloor\right]\)这一段,复杂度仍是\(\mathcal{O(n^2)}\)的,只有30pts。正难则反,我们换个角度考虑枚......
  • 贪心
    原理通过证明局部最优解可以得出全局最优解,从而\(O(n)\)解决问题。常用数学归纳法证明贪心正确性。模板取\(x,y\),计算\(f(x\text{先于}y),f(y\text{先于}x)\),令\(f(x\text{先于}y)>f(y\text{先于}x)\),解出贪心公式。区间类区间覆盖选取尽量少的区间使得区间[s......
  • Day65 小贪心 & 自选杂题
    哎怎么必可公益赛被爆破了,怎么lifan还加了几道我们的训练题目作为补偿。CF不知道死了多久了,一上午都没有打成duel!今天上午精神状态明显好了很多,可能和咖啡有点关系吧。按照时间顺序写题吧。AT_arc070_b可以进行撤销背包,也可以算前后缀背包,都是记录方案数。不难的。AT_a......
  • 华为OD机试 E卷|商人买卖 /贪心的商人
    华为OD机试E卷|商人买卖or贪心的商人0、关于本专栏&刷题交流群本文收录于专栏【2024华为OD机试真题】,专栏共有上千道OD机试真题,包含详细解答思路、与四种代码实现(Python、Java、C++、JavaScript)。点击文末链接加入【华为OD机试交流群】,和群友一起刷题备考。刷的越多,考试中遇......
  • NOIP2024 模拟赛19
    A拆位算贡献,枚举每一个位置,与操作两者都是\(1\),异或操作相反,或操作有一个是\(1\)即可。B观察到条件\(a_1\lek\)证明是必然有答案的,答案这样构成:从\(1\)走到任意点\(j\),然后\(j\)挖空,然后推到\(i\),记\(f_i\)为从\(1\)走到\(i\)的最小花费,答案\(i\)即为\(f_......
  • 百度二面算法:合法的括号字符串(贪心解法)
    目录标题1.题目1.1示例2.利用贪心算法求解2.1代码结构分析2.1.1代码优缺点2.1.2星号的角色分析2.1.2.1处理星号的逻辑2.1.2.2整体逻辑2.1.2.3代码逻辑总结2.2贪心的策略体现2.2.1贪心策略的应用1.题目给定一个字符串s,字符串......
  • 多校A层冲刺 NOIP2024 模拟赛 15
    多校A层冲刺NOIP2024模拟赛15T1追逐游戏(chase)签到题注意到三个点构成的树就是全部路径,找到交汇点(两两lca中dep最大的那个),分讨能否在终点前追上即可。时间复杂度为\(O(nlogn)\)T2统计哈希,差分维护每个值的前缀个数,发现合法段的两个前缀个数的形态一致,只是整体会多......
  • [CSP-S 2024] 超速检测——模拟、贪心
    [CSP-S2024]超速检测(民间数据)题目描述小D新入职了某国的交管部门,他的第一个任务是负责国家的一条长度为\(L\)的南北主干道的车辆超速检测。为了考考小D,上司首先需要他解决一个简化的场景。这个周末,主干道上预计出现\(n\)辆车,其中第\(i\)辆车从主干道上距离最南端\(......
  • 『模拟赛』多校A层冲刺NOIP2024模拟赛15
    Rank一般A.追逐游戏(chase)签,但是保龄。上来发现情况好像是有限的,于是直接分讨,不过漏了n种情况,小样例水,大样例vscose自带的compare跑不出来,注销一遍之后甚至进度条都没了导致我以为过了,最后10min才发现(赛后发现二分是可做的,但是倍增的巨大常数加上逆天评测速度......
  • [57] (多校联训) A层冲刺NOIP2024模拟赛15
    A.追逐游戏一个非常暴力的想法是直接求出最短路径\(S\),然后对\(S\)上的点,比较\(dis_{s,S_i}\)和\(dis_{s',S_i}\)的大小,如果抓捕的人先到就符合条件实际上,这个符合条件的路径是单调的,即在最短路径上存在一个断点,断点靠近起点的一侧总不可达,靠近终点的一侧总是可达的证明......