A. Closest Point
给你一组点。你必须在这个集合中加入一个整数的点,使它与集合中现有的每一个点不同,并且它成为与集合中每一个点**最近的点。这可能吗?(输入yes or no)
一道思路题,简单思考可以发现,如果数字超过两个,那么这题答案就是NO。当两个数字的时候,也要考虑中间有没有一个不同的数。
B. Game with Doors
题目描述
有 100个房间排成一排,它们之间有 99扇门; i扇门连接着 i和 i+1 两个房间。每扇门既可以上锁,也可以不上锁。最初,所有的门都没有上锁。
如果房间 x 和房间 y 之间的所有门都没有上锁,我们就说房间 x可以从房间 y到达。
- 爱丽丝在 [l,r][l,r] 段的某个房间里;
- 鲍勃位于线段 [L,R][L,R] 中的某个房间;
- 爱丽丝和鲍勃在不同的房间。
但是,你不知道他们具体在哪个房间。
你不想让爱丽丝和鲍勃接触到对方,所以你要锁上一些门来防止他们接触到对方。无论爱丽丝和鲍勃在给定段落中的起始位置如何,要使他们不能相遇,你必须锁上的门的最小数目是多少?
思路分析
一道模拟题,可以通过分类查看所有可能的情况。分类完之后,这道题就很简单了。
C. Splitting Items
题目描述
爱丽丝和鲍勃有 n件物品想平分,于是他们决定玩一个游戏。所有物品都有成本, i /th物品的成本是 ai 。玩家从爱丽丝开始轮流移动。
在每个回合中,玩家从剩下的物品中选择一个并拿走。游戏一直进行到没有物品为止。
假设 A是爱丽丝拿走物品的总成本, B 是鲍勃拿走物品的总成本。这样,游戏的得分就等于 A−B。
爱丽丝希望分数最大化,而鲍勃希望分数最小化。爱丽丝和鲍勃都将以最优方式进行博弈。
但游戏将在明天进行,所以今天鲍勃可以稍微修改一下成本。他可以将几个(可能一个也没有,也可能全部)项目的成本 ai 增加一个整数值(可能每个项目增加相同的值,也可能增加不同的值)。但是,增加的总金额必须小于或等于 k。否则,爱丽丝可能会怀疑。请注意,鲍勃不能减少成本,只能增加成本。
鲍勃可能获得的最低分数是多少?
分析
最优方式的博弈就是每次两个人都选择剩下物品中,最贵的一个。所以物品两个一组,每组的价格差就是这一组的得分。为了使得分数差最小,bob需要把一组内的差尽可能减小。所以只要统计每一组的得分差(去掉可能爱丽丝拿了bob没拿的最后一组)。让这个分差减掉k并且与0取最大值即可。
D. Colored Portals
题目描述
在一条直线上有 n 座城市。这些城市的编号从 1到 n。
传送门用于在城市之间移动。传送门有 4 种颜色:蓝色、绿色、红色和黄色。每个城市都有两种不同颜色的传送门。如果城市 i 和城市 j 的传送门颜色相同,则可以在这两个城市之间移动(例如,可以在 "蓝-红 "城市和 "蓝-绿 "城市之间移动)。这种移动需要花费 |i−j| 枚金币。
你的任务是回答 q个独立的问题:计算从城市 x 移动到城市 y 的最小成本。
分析
先从问题规模看起,n^2明显超时,所以不可能利用图论中的dijistla定理等做题。
还是先从假设距离开始思考做题,很简单就可以发现,大部分的组合都是可以直接传送的,每个城市只有一个组合是不能直接传送到达的。但是,假若有一个中转站,那么就可以直接到达。并且简单分析可以得到,这个中转站一定是6组传送门中,和x,y城市都不相同的传送门。
如果这个中转站在x,y之间。那么结果还是y-x
否则,我们就要比对x左边和y右边的城市中哪个中转站最近。这是一个查找问题;
但是分析可以发现,最坏的情况下,直接挨个查找会超时了,那么这时候就要使用二分查找。但是直接二分查找肯定是不行的。传送门元素是不可以二分的,那么这时候就要换个角度来思考了,能二分的只可能是城市位置,所以不能简单的就这样存储传送门,应该是每个传送门的城市编号存储起来。这样就能够得到一个可以二分位置查找的数组(6个)。
反思
1.从问题规模可以排除一些错误思路
2.二分查找时,如果发现元素是不能二分的,那么要考虑重新处理元素的记录方式,使其能够二分。
标签:二分,Educational,鲍勃,传送门,城市,房间,Codeforces,爱丽丝,169 From: https://blog.csdn.net/Wjx_0825/article/details/141869846