题解P8073 [COCI2009-2010#7] BAKICE
1.题解 P7763 [COCI2016-2017#5] Ronald2.题解 P6497 [COCI2016-2017#2] Prosječni3.题解 P7537 [COCI2016-2017#4] Rima4.题解 P8017 [COCI2013-2014#4] UTRKA5.题解 P7751 [COCI2013-2014#2] PUTNIK6.题解 P7752 [COCI2013-2014#2] PALETA7.题解 P7586 [COCI2012-2013#1] SNAGA8.题解 P6485 [COCI2010-2011#4] PROSJEK9.题解 P6447 [COCI2010-2011#1] ŽABE10.题解P6677 [COCI2019-2020#2] Checker
11.题解P8073 [COCI2009-2010#7] BAKICE
12.题解P8084 [COCI2011-2012#4] BROJ13.题解P6370 [COCI2006-2007#6] KAMEN14.题解 P7165 [COCI2020-2021#1] Papričice15.题解 P9911 [COCI 2023/2024 #2] Kuglice16.题解 P6356 [COCI2007-2008#3] CUDAK17.题解 P7309 [COCI2018-2019#2] Kocka18.题解 P6548 [COCI2010-2011#2] IGRA19.题解 P6491 [COCI2010-2011#6] ABECEDAP8073 [COCI2009-2010#7] BAKICE
题意
对于每位乘客(用 X 表示)会寻找距离(欧几里得距离)自己最近的座位(用 L 表示)。
坐座位满足以下原则:
- 如果有别人离这个椅子更近,那这个人会选择下一张最近的椅子。
- 如果有别人离这个椅子一样近,那这个椅子与这些人都会发生 1 次爆炸。
(不存在一个人离两个人相同距离)。
分析
因为对于一个人不存在有两张椅子离其距离相等,
那么我们就可以认为这个人会选择离自己最近的目前没有人坐的椅子。
又看到数据范围
我们暴力处理出所有椅子与人的距离,并进行排序。
对于我们当前选择的这条线路分情况讨论:
- 如果当前这个人已经有了一个位置,那么当前的线路无意义,直接跳过。
- 如果当前这张椅子未选,直接选择这张椅子。
- 如果当前这张椅子被选,并且之前那个人的距离更近,跳过。
- 如果当前这张椅子被选,并且之前那个人的距离和这次距离相等,发生一次爆炸。
注意
- 一张椅子只会发生一次爆炸,因此爆炸后我们要对这个椅子进行标记,防止重复运算。
- 题目所求为欧几里得距离,而不是曼哈顿距离。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!