题目大意
膜拜一位霓虹大佬%%%%
平面上有一堆不重叠的硬币.
给定硬币的起点和终点,问最多可以把多少个硬币从起点直线移动到终点,且不会与其他硬币碰撞.
解析
状压$dp$+计算几何
一个硬币能否移动的条件为:第$i$枚硬币的起点和终点的连线L,与第$j$个硬币中心的距离$d$是否大于这俩个硬币半径的和.
即$distance(L,O_j)<r_j+r_i$
将每一个硬币是否移动过压缩为$0$和$1$,每次要移动$i_{th}$硬币时,先判断答案这一位是不是$1$.
再根据答案数中的二进制位判断$j_{th}$这个圆是在终点还是起点.
最后再判断能否移动,更新答案即可.
1 |
|