首页 > 其他分享 >P1973 [NOI2011] NOI 嘉年华

P1973 [NOI2011] NOI 嘉年华

时间:2024-12-15 20:54:57浏览次数:6  
标签:钦定 NOI max 线段 tot 我们 NOI2011 场地 P1973

前言

好困难啊, 最近的新目标是吧效率拉起来

思路

转化题意

一问

对于 \(n\) 条线段, 我们对于每条线段, 都要分到两个场地中的一个或者放弃, 求如何分配使得两个场地不存在 \(i\) 满足 \(i \in S_1\) 且 \(i \in S_2\) (其中 \(S_1, S_2\) 分别表示两个场地线段的集合) , 并且使得较少的场地的线段数最多

二问

求当钦定 \(i\) 线段必选时, 并且使得较少的场地的线段数最多


先考虑一问

这个题我们发现, 如果你考虑单条线段, 不太好做, 原因是题目中的限制条件和线段没什么关系, 所以我们考虑按照点来 \(\rm{dp}\)

令 \(f_{i, j}\) 表示对于前 \(i\) 个时间点, 给 \(1\) 号场地 \(j\) 条线段, 此时另外一边选择线段的最大值

我们讨论一段区间内, 几条线段全部给 \(1\) 号或者 \(2\) 号场地时的最优收益

\[f_{i, j} = \max_{k = 1}^{i - 1} \{ f_{k, j - tot_{k, i}}, f_{k, j} + tot_{k, i} \} \]

其中 \(tot\) 为预处理出的 \(l \sim r\) 区间中, 有多少条被完全覆盖的线段

这样我们可以 \(\mathcal{O} (n^3)\) 且比较自然的完成一问

答案即为 \(\displaystyle\max_{i = 1}^{n} \{f_{m, i}, i\}\)


考虑二问

容易发现的是, 当我们钦定 \(i\) 条线段必须选时, 其前后两段的性质与第一问无异

我们考虑处理前后缀, 把第一问的 \(f\) 数组作为 \(pre\) , 然后新做一个 \(suf\) 数组来枚举后缀

我们令 \(f_{l, r}\) 表示钦定 \(l \sim r\) 必选, 此时的最优解, 相似的, 枚举前后选择的数量, 有

\[f_{l, r} = \max_{x = 1}^{m}\max_{y = 1}^{m} \{ \min(x + y + tot_{l, r}, pre_{l, x} + suf_{r, y}) \} \]

考虑答案, 我们不能简单地用钦定的线段的 \(l, r\) 来处理, 因为有可能会出现线段与钦定线段重叠, 那么我们还需要想办法把他也选上

答案即为 \(\displaystyle\max_{l = 1}^{s_i}\max_{r = s_i + t_i}^{m} f_{l, r}\)

但是这样的复杂度为 \(\mathcal{O} (n^4)\) , 不够优秀

注意到当 \(x\) 一定, 那么当 \(y\) 增大时, \(suf_{r, y}\) 一定单调不增, 利用这个单调性, 我们把 \(y\) 当做一个指针, 即可优化掉一维

具体的, 当 \(x\) 增长, 只有 \(y\) 减小才能找到更优秀的答案

实现

并不难写, 就不写了

总结

状态的设计应当便于处理限制

善于找到新增问题与原问题的共同点, 然后转化问题

善于手动模拟算法来找到问题

单调性优化非常的好用

标签:钦定,NOI,max,线段,tot,我们,NOI2011,场地,P1973
From: https://www.cnblogs.com/YzaCsp/p/18608689

相关文章

  • NOIP 游记
    「喧闹法则」EP-SPEEDOFLIGHTLookaroundyou,everything'sblackandwhite环顾四周,仿佛一张黑白画卷Oh,howsimpleisthat?哦,这不是显而易见?Don'tyouknowthatit'saboutthewayyoulookatthisworld你怎会不清楚,你一直是如此看待这个世界Gostraight,o......
  • P6474 [NOI Online #2 入门组] 荆轲刺秦王 题解
    荆轲将会臭名昭著首先$15$做法很简单,那就是直接`cout<<-1`考虑用BFS来解思路很简单,但是怎么求每个士兵的控制范围呢?直接暴力时间复杂度是$O(nma^2)$当然过不了一定会TLE。所以,只需要差分+前缀和即可。说起来简单,实现起来也简单。然后,单打广搜大家应该都会了,可是出题......
  • P1070 [NOIP2009 普及组] 道路游戏
    ProblemSolve此题是求最优解,考虑贪心时会发现这个不满足局部最优->整体最优,故考虑DP通过输入格式能受到启发,时间可以作为维度之一,所以定义为:\(f_{i,j}\)第i秒末,机器人在j号工厂能获得的最大金币因为机器存在时间有上限,所以推的时候枚举本次机器人到底走了多少步,然后从走之......
  • NOIP2024 及后续一段时间的总结及未来计划
    NOIP冲刺阶段停课阶段我觉得没什么好写的了,大家基本上状况都差不多。中间的几场模拟赛成绩飘飘浮浮的,但是题也都认真补了,也没有什么好说的。主要还是写一下考场上犯的一些错。做第一题的时候比较正常,花了大概90min做出来了,做得有点慢。原因是最开始想到做法后,没有去推细节......
  • NOIP2024
    T1显然,若\(t[l,r]\)均为\(\texttt1\),会让\(s[l,r]\)可以任意重排。从左到右按位匹配,考虑让一位匹配的代价,可能会让其后面缺少一个数进行匹配,也就是后面的答案最多减少\(1\)。而匹配一位已经有了\(1\)的贡献,故贪心匹配一定不劣。预处理后暴力匹配即可,附上赛时代码。#in......
  • NKOJ 1209 并查集【NOI2001 Day1 T3】食物链
    NKOJ1209并查集【NOI2001Day1T3】食物链思路:带权/种类并查集方法一实现方法用带权并查集带的权值是边权,不是点权,用来表示两点间的关系,但为了方便记录还是用点权,每个点记录到根节点的权值。在getf函数中注意更新是到根节点之间的权值,用\(val_x=(val_x+val_{fa_x})\bm......
  • NKOJ 1206 【NOI2002 Day1 T1】银河英雄传说
    NKOJ1206【NOI2002Day1T1】银河英雄传说思路:和NKOJ2281一样实现方法移动操作完全一样。计算操作的区别在于,一个是直接输出到根节点的距离,另一个实际上是前缀和思想,用\(x\)到根的距离减去\(y-1\)到根的距离,就是\(x\simy\)之间的距离。代码#include<cstdio>#in......
  • noip2024 游记
    day-inf前情提要由于csp的超常发挥,喜提SC-0001。day0浮躁。浮躁。浮躁。但这并不是那么严重,因为其实csp前我也挺浮躁的(不过和csp不一样的是入睡前非常兴奋。由于害怕被叠失眠debuff,来了半粒安眠药(人生第一次吃安眠药qwq),神奇的是吃了以后一下就睡着了。day1这天......
  • [Ynoi2008] rdCcot 做题记录
    link考虑对于每个连通块,我们寻找一个代表元计数。可以设定为深度最小的点,若深度同样小,则选定编号更小的。我们对于每个点\(u\)求出\(l_u,r_u\)表示根据上述比较规则下比\(u\)小,且距离不超过\(C\),最接近\(u\)的一左一右两个点。如果\(l_u,r_u\)任意一个点存在当前询......
  • [Ynoi2011] 成都七中 做题记录
    Educational。link连通块问题不强于路径统计问题,考虑点分治,对于每个分治点统计所有包含该点的连通块。判断一个连通块是否包含一个分治点是容易的,DFS一遍判断路径上最大最小值是否超出限制。DFS可以求出所有点到分治点的路径上的最大最小值,视作一个区间\([mn_i,mx_i]\),颜色......