AT_s8pc_4_f.Find the Route!

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

有一个 H×WH \times W 的网格。左上角的坐标是 (1,1)(1,1),右下角的坐标是 (H,W)(H,W)。
有 NN 个格子中绘有箭头,从坐标 (ai,bi)(a_i,b_i) 出发的箭头的终点是在方向 cic_i、距离 did_i 处的位置。
同一个格子中不会有多个箭头。

现在,E869120 想仅通过跟随箭头从起点 (sx,sy)(sx,sy) 到终点 (gx,gy)(gx,gy)。
然而,在当前的棋盘上,有时无法到达终点。
因此,E869120 决定修改网格,但修改网格需要付出代价。

他可以按照以下方式修改每个箭头的方向和长度:

  • 将方向 cic_i 更改为其他方向,代价为 eie_i。
  • 将距离 did_i 的值更改为 GG,代价为 f×∣di−G∣f \times |d_i-G|,其中 ∣p∣|p| 表示 pp 的绝对值(did_i 可以取负值,ff 是所有箭头共有的常数)。
  • 允许 did_i 取负值,此时箭头方向相反,箭头的长度为 ∣di∣|d_i|。

求为了使得可以仅通过跟随箭头从起点到终点,对棋盘做最小代价的修改。
如果无论如何修改也无法到达终点,请输出 "-1"。

注意,箭头是单向的,不能在箭头的中途拐弯。

此外,坐标系 (p1,p2)(p1,p2) 中,p1p1 越小表示靠北侧,p2p2 越小表示靠左侧(西侧)。

输入格式

输入按以下格式从标准输入给出。

HH WW NN ff sxsx sysy gxgx gygy a1a_1 b1b_1 c1c_1 d1d_1 e1e_1 a2a_2 b2b_2 c2c_2 d2d_2 e2e_2 : : : aNa_N bNb_N cNc_N dNd_N eNe_N

输出格式

请输出使得从起点到终点能够到达所需最小的箭头修改代价。
若无法到达,请输出 -1。
末尾需换行。

输入输出样例

  • 输入#1

    4 4 2 2
    1 1 2 2
    1 1 E 1 1
    1 2 E 2 2

    输出#1

    4
  • 输入#2

    1 4 2 10
    1 1 1 4
    1 1 E 1 4
    1 3 W 1 4

    输出#2

    14
  • 输入#3

    1 8 4 9
    1 3 1 6
    1 1 E 7 2
    1 8 W 7 5
    1 3 W 2 5
    1 6 E 2 8

    输出#3

    14
  • 输入#4

    输出#4

    14

说明/提示

限制条件

  • 1≤H,W≤1000001 \leq H,W \leq 100000
  • 1≤N≤700001 \leq N \leq 70000
  • 1≤f,ei≤10000001 \leq f, e_i \leq 1000000
  • 1≤di≤1000001 \leq d_i \leq 100000
  • 1≤ai,sx,tx≤H1 \leq a_i, sx, tx \leq H
  • 1≤bi,sy,ty≤W1 \leq b_i, sy, ty \leq W
  • cic_i 为 'N', 'E', 'S', 'W' 其中之一。'N' 表示北侧(上方),'E' 表示东侧(右方)。

小子任务

小子任务1【190分】

  • 满足 H=1H = 1。
  • 满足 W≤600W \leq 600。

小子任务2【170分】

  • 满足 H,W≤80H,W \leq 80。

小子任务3【360分】

  • 满足 H,W≤600H,W \leq 600。

小子任务4【430分】

  • 无附加限制。

由 ChatGPT 5 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页