AT_s8pc_4_f.Find the Route!
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
有一个 H×W 的网格。左上角的坐标是 (1,1),右下角的坐标是 (H,W)。
有 N 个格子中绘有箭头,从坐标 (ai,bi) 出发的箭头的终点是在方向 ci、距离 di 处的位置。
同一个格子中不会有多个箭头。
现在,E869120 想仅通过跟随箭头从起点 (sx,sy) 到终点 (gx,gy)。
然而,在当前的棋盘上,有时无法到达终点。
因此,E869120 决定修改网格,但修改网格需要付出代价。
他可以按照以下方式修改每个箭头的方向和长度:
- 将方向 ci 更改为其他方向,代价为 ei。
- 将距离 di 的值更改为 G,代价为 f×∣di−G∣,其中 ∣p∣ 表示 p 的绝对值(di 可以取负值,f 是所有箭头共有的常数)。
- 允许 di 取负值,此时箭头方向相反,箭头的长度为 ∣di∣。
求为了使得可以仅通过跟随箭头从起点到终点,对棋盘做最小代价的修改。
如果无论如何修改也无法到达终点,请输出 "-1"。
注意,箭头是单向的,不能在箭头的中途拐弯。
此外,坐标系 (p1,p2) 中,p1 越小表示靠北侧,p2 越小表示靠左侧(西侧)。
输入格式
输入按以下格式从标准输入给出。
H W N f sx sy gx gy a1 b1 c1 d1 e1 a2 b2 c2 d2 e2 : : : aN bN cN dN eN
输出格式
请输出使得从起点到终点能够到达所需最小的箭头修改代价。
若无法到达,请输出 -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≤100000
- 1≤N≤70000
- 1≤f,ei≤1000000
- 1≤di≤100000
- 1≤ai,sx,tx≤H
- 1≤bi,sy,ty≤W
- ci 为 'N', 'E', 'S', 'W' 其中之一。'N' 表示北侧(上方),'E' 表示东侧(右方)。
小子任务
小子任务1【190分】
- 满足 H=1。
- 满足 W≤600。
小子任务2【170分】
- 满足 H,W≤80。
小子任务3【360分】
- 满足 H,W≤600。
小子任务4【430分】
- 无附加限制。
由 ChatGPT 5 翻译
输入解题思路,AI测评打分。不知道怎么写?