【清华集训】小Y和地铁

题目:

小 $\rm Y$ 是一个爱好旅行的 $\rm OIer$。一天,她来到了一个新的城市。由于不熟悉那里的交通系统,她选择了坐地铁。
她发现每条地铁线路可以看成平面上的一条曲线,不同线路的交点处一定会设有换乘站。通过调查得知,没有线路是环线,也没有线路与自身相交。任意两条不同的线路只会在若干个点上相交,没有重合的部分,且没有三线共点的情况。即,如图所示的情况都是不存在的:

小 Y 坐着地铁 $0$ 号线,路上依次经过了 $n$ 个换乘站。她记下了每个换乘站可以换乘的线路编号,发现每条线路与她所乘坐的线路最多只有 $2$ 个换乘站。现在小 $\rm Y$ 想知道,除掉她经过的换乘站以外,这个城市里最少有几个换乘站。只有你告诉她正确的答案,她才会答应下次带你去玩呢。

$n\le 44$

分析:

我们发现,对于两个换乘站,共有$8$种情况:

考虑我们对每组换乘站进行枚举,再加上$O(n)$的暴力找交点数,时间复杂度为$O(n8^\left(\frac{n}{2}\right))$,面对$n\le 44$的数据,显然会$\rm TLE$。

期望得分$\rm 10$。

考虑寻找这$8$种情况有没有重复。

我们发现,对于第一行的两种情况,放到一起,会是这样的:

对于这种情况,由于这两条线产生了一个完全包住$0$号线的环,我们发现对于每一个其他的线,要么不和这两条线产生交点,要么对这两条线每条都产生一个交点。

所以,不管朝左还是朝右,结果都是一样的,我们只需要枚举朝上或朝下即可。

时间复杂度$O(n4^\left(\frac{n}{2}\right))$,期望得分$40$分。

再考虑,能不能继续减少情况数。

比如,我们把第一列的两种放到一起。

这张图也构成了环,但是这个环并没有能把0号线包住,但是这个环把0号线右边的所有点包住了,也就是在第一个红点右边的所有点是不会受到这两个的选择的影响的。

然后再来看第一个红点左边的情况,如果你是按左端点从左往右搜索的,你会发现到这步的时候红点左边已经搜索完了,即在左边会进出环的点已经全部决定了,而又因为不会对右边造成影响,所以我们可以贪心地取这两条环产生交点的最小值。

同理,剩下的也可以这样处理。

时间复杂度$O(n2^\left(\frac{n}{2}\right))$。

期望得分$\rm 80$分。

搜索的时间复杂度看上去已经很优了,所以我们考虑能不能优化找交点的时间复杂度。

考虑我们若从左往搜索,用$a.l,a.r$表示$a$线路的左端点右端点,若只考虑同向,因为$a.l \lt a.r, b.l \lt b.r\lt a.l \lt b.l$则有三种情况:

$$1)\quad a.l\lt b.l\lt b.r \lt a.r$$

$$2)\quad a.l\lt a.r\lt b.l \lt b.r$$

$$3)\quad a.l\lt b.l \lt a.r \lt b.r$$

显然,只有情况$3$是相交的。

我们发现只有$b.l\lt a.r\lt b.r$我们才需要统计。

是不是很熟悉?你可以使用树状数组来进行统计。

每个右端点标记$1$,然后求$[b.l,b.r]$的和即可。

对于朝向问题,显然左端点的朝向不影响,右端点只有同向才会相交,可以自行画图,这边不作演示。

至于代码,由于写的时候比较早,太丑就不放出来了。

有问题请留言。

原文地址:https://www.cnblogs.com/zhylj/p/9525885.html

时间: 2024-11-07 13:23:13

【清华集训】小Y和地铁的相关文章

[清华集训]小 Y 和恐怖的奴隶主

题面在这里 题意 有一个\(Boss\)和他血量为\(m\)的随从奴隶主,每当奴隶主受到攻击且不死,并且\(Boss\)的随从个数\(<k\)时,就会新召唤一个血量为\(m\)的奴隶主.每次攻击\(Boss\)和每个奴隶主的概率是相同的,求\(n\)步后期望对\(Boss\)造成的伤害. \(T\le1000,n\le10^{18},m\le3,k\le8\) sol --- 看到\(m<=3,k<=8\)的良心数据肯定是状压啦 通过暴搜可以得出状态最多只会有\(164\)种 并且两个状

P4005 小 Y 和地铁

题目描述 小 Y 是一个爱好旅行的 OIer.一天,她来到了一个新的城市.由于不熟悉那里的交通系统,她选择了坐地铁. 她发现每条地铁线路可以看成平面上的一条曲线,不同线路的交点处一定会设有 换乘站 .通过调查得知,没有线路是环线,也没有线路与自身相交.任意两条不同的线路只会在若干个点上相交,没有重合的部分,且没有三线共点的情况.即,如图所示的情况都是不存在的: 小 Y 坐着地铁 0 号线,路上依次经过了 n 个换乘站.她记下了每个换乘站可以换乘的线路编号,发现每条线路与她所乘坐的线路最多只有 2

[清华集训2017]小 Y 和地铁(神奇思路,搜索,剪枝,树状数组)

世界上最不缺的就是好题. 首先考虑暴搜.(还有什么题是从这东西推到正解的……) 首先单独一个换乘站明显没用,只用考虑一对对的换乘站. 那么有八种情况:(从题解偷图)         然后大力枚举每个换乘站的情况.同时判断交点.$O(n\times 8^{\frac{n}{2}})$. 然后考虑这种情况: 发现对于任意一条地铁线,要么与这两个都有交点,要么可以与这两个都没有交点.(其实会有与一个有两个交点,与另一个没有交点的情况.这时也可以把这条线换个方向,答案不会更差.思考思考为什么) 那么合法

[LOJ#2325]「清华集训 2017」小Y和恐怖的奴隶主

[LOJ#2325]「清华集训 2017」小Y和恐怖的奴隶主 试题描述 "A fight? Count me in!" 要打架了,算我一个. "Everyone, get in here!" 所有人,都过来! 小Y是一个喜欢玩游戏的OIer.一天,她正在玩一款游戏,要打一个Boss. 虽然这个Boss有 \(10^{100}\) 点生命值,但它只带了一个随从--一个只有 \(m\) 点生命值的"恐怖的奴隶主". 这个"恐怖的奴隶主&qu

【UOJ274】【清华集训2016】温暖会指引我们前行 LCT

[UOJ274][清华集训2016]温暖会指引我们前行 任务描述 虽然小R住的宿舍楼早已来了暖气,但是由于某些原因,宿舍楼中的某些窗户仍然开着(例如厕所的窗户),这就使得宿舍楼中有一些路上的温度还是很低. 小R的宿舍楼中有n个地点和一些路,一条路连接了两个地点,小R可以通过这条路从其中任意一个地点到达另外一个地点.但在刚开始,小R还不熟悉宿舍楼中的任何一条路,所以他会慢慢地发现这些路,他在发现一条路时还会知道这条路的温度和长度.每条路的温度都是互不相同的. 小R需要在宿舍楼中活动,每次他都需要从

bzoj 4736 /uoj274【清华集训2016】温暖会指引我们前行 lct

[清华集训2016]温暖会指引我们前行 统计 描述 提交 自定义测试 寒冬又一次肆虐了北国大地 无情的北风穿透了人们御寒的衣物 可怜虫们在冬夜中发出无助的哀嚎 “冻死宝宝了!” 这时 远处的天边出现了一位火焰之神 “我将赐予你们温暖和希望!” 只见他的身体中喷射出火焰之力 通过坚固的钢铁,传遍了千家万户 这时,只听见人们欢呼 “暖气来啦!” 任务描述 虽然小R住的宿舍楼早已来了暖气,但是由于某些原因,宿舍楼中的某些窗户仍然开着(例如厕所的窗户),这就使得宿舍楼中有一些路上的温度还是很低. 小R的

「清华集训2014」矩阵变换

「清华集训2014」矩阵变换 解题思路 问题转化为找一个行与选的数字的完美匹配,记 \(pos[i][j]\) 为数字 \(i\) 在第 \(j\) 行的出现位置,要求不存在匹配边 \((a,b),(c,d)\) 使得 \(pos[b][a] < pos[b][c]\ \& \ pos[d][c] > pos[b][c]\) . 观察发现,这个式子相当于让一条边的权值看做 \(pos[x][y]\) ,当存在一个行与一个数没有匹配但是强行让它们匹配后数的权值会变大,行的权值会变小,这个

清华集训2014 做题记录

清华集训2014做题记录 已完成 [清华集训2014]玛里苟斯 [清华集训2014]主旋律 [清华集训2014]奇数国 [清华集训2014]矩阵变换 [清华集训2014]sum [清华集训2014]虫逢 [清华集训2014]玄学 [清华集训2014]文学 未完成 [清华集训2014]卡常数 [清华集训2014]简单回路 [清华集训2014]Router [清华集训2014] Breaking Bomber 写一题要膜一题题解,膜完题解膜代码,膜完代码膜指导,膜了好几天了还有四个题没做. [清华集

2017.11.26【清华集训2017】模拟

T1 5483. [清华集训2017模拟11.26]简单路径T2 5484. [清华集训2017模拟11.26]快乐树T3 5485. [清华集训2017模拟11.26]字符串 T1 结论题,结论很显然任意两条路径权异或后,会将两条路径的交的贡献删去.然后用个桶存一下出现过的异或和,暴力判一下就可以了 code 1 #include<cstdio> 2 #include<cmath> 3 #include<cstring> 4 #include<algorithm