#P9720. [EC Final 2022] Map

[EC Final 2022] Map

Description

有一个著名的数学定理,如果你把一张公园的地图完全放在公园里,那么地图上存在一个点与它所代表的点重合。

Mio 非常喜欢这个定理,所以她把她最喜欢的公园的地图完全放在了公园里。公园 PP 可以用一个矩形表示。公园的地图只是一个较小(或相等)版本的公园在纸上的打印。地图与原始矩形相似。地图上的每个点都通过相似变换对应于公园中的一个点。

我们可以正式定义地图:地图是一个矩形 MM(大小较小或相等),加上一个正实数 rr 和一个双射函数 f:MPf:M \rightarrow P,满足以下条件:

  • 对于 MM 中的每对不同的点 a,ba, bf(a)f(b)/ab=r|f(a)-f(b)|/|a-b|=r

这里 xy|x-y| 表示点 xx 和点 yy 之间的欧几里德距离。

就像许多游戏一样,Mio 可以使用地图进行传送。准确地说,当 Mio 在地图上的某个点 xx(包括边界)时,她可以传送到公园中相应的点 f(x)f(x)。她也可以选择不传送。反之亦然。当她在公园中的点 yy(包括边界)时,她可以传送到代表她当前位置的地图上的点 f1(y)f^{-1}(y)。她也可以选择不传送。

Mio 最多可以传送 nn 次(最少为 00 次)。每次传送需要 kk 秒。Mio 还可以以每秒 11 个单位的速度步行。

给定两个点 sstt,找出 Mio 从 sstt 需要的最短时间。

每次传送可以是任意方向(从地图到公园,或从公园到地图)。地图可以倒置放置。由于地图位于公园内部,所以 Mio 可能同时在地图上和在公园中。在这种情况下,她可以选择传送的方向。

例如,在下图中,公园是 ABCDABCD,地图是 ABCDA'B'C'D'。当 Mio 在地图上时,她同时在地图上和在公园中。当她在点 DD' 时,她可以从地图传送到公园(到达 DD),并从公园传送到地图(到达 DD^{\prime\prime})。

Input Format

第一行包含一个整数 TT1T1001\le T\le 100),表示测试用例的数量。

对于每个测试用例,第一行包含表示公园矩形的 44 个角点。角点按顺时针或逆时针顺序给出。保证 44 个角点不相同。

第二行包含表示地图矩形的 44 个角点。地图的第 ii 个角点对应于公园的第 ii 个角点,对于所有 1i41\le i\le 4。请注意,您可以通过角点的顺序确定地图是否倒置放置。角点按顺时针或逆时针顺序给出。保证地图位于公园内部。(地图的边界可能与公园的边界在 11 个或多个点相交。)保证地图是有效的,即存在一个正实数和一个从地图到公园的双射函数,满足上述的定义。

第三行包含两个点 sstt。保证 sstt 在公园内部(或在公园的边界上)。

第四行包含两个整数 k,nk, n0k2×106,0n1000\le k\le 2\times 10^6, 0\le n\le 100),表示每次传送所需的时间,以及最大传送次数。

输入中的每个点由一对整数表示,其绝对值不超过 2×1062\times 10^6。整数之间用单个空格分隔。

Output Format

对于每个测试用例,输出一行数字表示答案。如果没有解决方案,则输出 1-1。否则,输出最小的时间。您的答案被认为是正确的,如果其绝对或相对误差不超过 10910^{-9}

翻译来自于:ChatGPT

2
0 0 0 2 4 2 4 0
0 0 0 1 2 1 2 0
2 1 4 2
1 1
0 0 0 3 6 3 6 0
0 1 1 0 3 2 2 3
0 0 4 2
0 3
1.0000000000
1.2272623352