云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > NOIP清北学堂11.13模拟赛题目题解

NOIP清北学堂11.13模拟赛题目题解

  • 62 次阅读
  • 3 次下载
  • 2025/5/24 1:35:03

分析

第一题:校门外的树

解答:对M个区间排序,对整个区间从头到尾稍描一遍即可。

也可以不排序,记录对区间的左端点记录它的右端点即可。

第二题:工具箱:

D’ A A’ D B θ C’ C B’ x 解答:显然,并不是把两个矩形的边长简单比一下大小就可以了事的,有些情况是需要旋

转矩形才能做到的。

如上图:矩形ABCD嵌在了矩形A’B’C’D’中,但把他们平着放是不能达到目的的。关键是解决这种情况。

我们不妨设那个大的矩形的边总是平行于坐标轴的,小的矩形和水平方向成θ角,且θ∈[0,π/2],并且是以C点为转轴。

若初始时θ=0,则A为(x,y),B’C’长度为xcosθ+ysinθ,A’D’长度为xsinθ+ycosθ。故有: xsinθ+ycosθ

由①得:sin(θ+arctan(y/x))

θ∈[0,π/2] (a/sqrt(x*x+y*y)>1)

θ∈(-arctan(y/x),arcsin(a/sqrt(x*x+y*y))-arctan(y/x))∪

(π-arcsin(a/sqrt(x*x+y*y)-arctan(y/x),π-arcsin(a/sqrt(x*x+y*y))) (a/sqrt(x*x+y*y)<=1)

由②得:sin(θ+arctan(x/y))

θ∈[0,π/2] (b/sqrt(x*x+y*y)>1)

θ∈(-arctan(x/y),arcsin(b/sqrt(x*x+y*y))-arctan(x/y))∪

(π-arcsin(b/sqrt(x*x+y*y)-arctan(x/y),π-arcsin(b/sqrt(x*x+y*y))) (b/sqrt(x*x+y*y)<=1) 把以上两个解集先与[0,π/2]求交,再互相求交,若得出的解集不为空,则有解,否则无解,注意精度误差。

第三题:疯狂的涂色:

解答:这个题很有意思……一眼看上去像是线段树,不过n<=1000000,m<=10000000,范

围很吓人……难道有线性的算法?答案是肯定的。

若一个馒头被染上了第i种颜色,那么第j(j

进行到某一步时,序列中被涂色的馒头一定构成了一个又一个的段。我们当前要给[l,r]区间内的馒头染色,那么中途可能会碰到这样的一些段。我们想方设法要很快就把这些段给“跳”过去,这样就可以在近似线性的复杂度内出解。怎样跳呢?

类 集合的“根”。令第i个馒头当前的“根”为r[i](r[i]不一定是真的“根”),真正的“根”为r’[i]。

则有:

当r[i]>i时:r’[i]=r’[r[i]];

当r[i]=i且r[i+1]>0时:r’[i]=r’[r[i+1]]; 当r[i]=i且r[i+1]=0时,r’[i]=i;

据此,我们可以求出第i个点所在的涂色段的右端点。

当然,这个过程是可以优化的。当我们每次求出r’[i]时,就把中间经过的点的r[i]赋值成r’[i],这就相当于“路径压缩”。

再有,第i次的染色区间和第i+n次的染色区间是一样的,故我们只要进行n次染色即可。

所以总时间复杂度为O(nα(n))≈O(n)。

第四题:保龄球:

解答:设f[i,j]表示用前i个球去打前j个棒,且第j个棒一定要打倒时所能获得的最大价

值。则f[i,j]=max{f[i-1,k(0<=k<=i-len)]+s[i]-s[i-len],f[i-1,k(i-1>=k>=i-len)]+s[i]-s[k]}。直接这样做肯定会超时。怎样优化呢?

让我们从两个式子特点入手,逐一优化方程。

第一个式子中s[i]-s[i-len]为定值,与k无关,且左边界为常数。那么很容易想到令g[i,j]=max{g[i,k(j>=k>=0)]},这样决策就优化到了O(1)。

第二个式子中s[i]-s[k]不是定值,且k的左边界为变量。这样就不能用上面类似的方法

来优化了。但我们注意到:当j递增时,k的取值区间也是递增的,且长度一定,这就让我们想起了经典的用队列维护最值的模型。于是我们把f[i-1,k]-s[k]存入队列里,然后把k

搜索更多关于: NOIP清北学堂11.13模拟赛题目题解 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

分析 第一题:校门外的树 解答:对M个区间排序,对整个区间从头到尾稍描一遍即可。 也可以不排序,记录对区间的左端点记录它的右端点即可。 第二题:工具箱: D’ A A’ D B θ C’ C B’ x 解答:显然,并不是把两个矩形的边长简单比一下大小就可以了事的,有些情况是需要旋转矩形才能做到的。 如上图:矩形ABCD嵌在了矩形A’B’C’D’中,但把他们平着放是不能达到目的的。关键是解决这种情况。 我们不妨设那个大的矩形的边总是平行于坐标轴的,小的矩形和水平方向成θ角,且θ∈[0,π/2],并且是以C点为转轴。 若初始时θ=0,则A为(x,y),B’C’长度为xcosθ

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com