A5932 | 「NOI2020」美食家
时间限制2s
内存限制512MB
通过 / 提交0/0
题目描述
坐落在 Bzeroth 大陆上的精灵王国击退地灾军团的入侵后,经过十余年的休养生息,重新成为了一片欣欣向荣的乐土,吸引着八方游客。小 W 是一位游历过世界各地的著名美食家,现在也慕名来到了精灵王国。
精灵王国共有 $n$ 座城市,城市从 $1$ 到 $n$ 编号,其中城市 $i$ 的美食能为小 W 提供 $c_i$ 的愉悦值。精灵王国的城市通过 $m$ 条单向道路连接,道路从 $1$ 到 $m$ 编号,其中道路 $i$ 的起点为城市 $u_i$,终点为城市 $v_i$,沿它通行需要花费 $w_i$ 天。也就是说,若小 W 在第 $d$ 天从城市 $u_i$ 沿道路 $i$ 通行,那么他会在第 $d + w_i$ 天到达城市 $v_i$。
小 W 计划在精灵王国进行一场为期 $T$ 天的旅行,更具体地:他会在第 $0$ 天从城市 $1$ 出发,经过 $T$ 天的旅行,最终在恰好第 $T$ 天回到城市 $1$ 结束旅行。由于小 W 是一位美食家,每当他到达一座城市时(包括第 $0$ 天和第 $T$ 天的城市 $1$),他都会品尝该城市的美食并获得其所提供的愉悦值,若小 W 多次到达同一座城市,他将获得多次愉悦值。注意旅行途中小 W 不能在任何城市停留,即当他到达一座城市且还未结束旅行时,他当天必须立即从该城市出发前往其他城市。

<center> 图 1:sample 1 </center>
对于上图,小 W 一种为期 $11$ 天的可行旅游方案为 $1\rightarrow 2 \rightarrow 1 \rightarrow 2 \rightarrow 3 \rightarrow 1$:
精灵王国共有 $n$ 座城市,城市从 $1$ 到 $n$ 编号,其中城市 $i$ 的美食能为小 W 提供 $c_i$ 的愉悦值。精灵王国的城市通过 $m$ 条单向道路连接,道路从 $1$ 到 $m$ 编号,其中道路 $i$ 的起点为城市 $u_i$,终点为城市 $v_i$,沿它通行需要花费 $w_i$ 天。也就是说,若小 W 在第 $d$ 天从城市 $u_i$ 沿道路 $i$ 通行,那么他会在第 $d + w_i$ 天到达城市 $v_i$。
小 W 计划在精灵王国进行一场为期 $T$ 天的旅行,更具体地:他会在第 $0$ 天从城市 $1$ 出发,经过 $T$ 天的旅行,最终在恰好第 $T$ 天回到城市 $1$ 结束旅行。由于小 W 是一位美食家,每当他到达一座城市时(包括第 $0$ 天和第 $T$ 天的城市 $1$),他都会品尝该城市的美食并获得其所提供的愉悦值,若小 W 多次到达同一座城市,他将获得多次愉悦值。注意旅行途中小 W 不能在任何城市停留,即当他到达一座城市且还未结束旅行时,他当天必须立即从该城市出发前往其他城市。

<center> 图 1:sample 1 </center>
对于上图,小 W 一种为期 $11$ 天的可行旅游方案为 $1\rightarrow 2 \rightarrow 1 \rightarrow 2 \rightarrow 3 \rightarrow 1$:
- 第 $0$ 天,小 W 从城市 $1$ 开始旅行,获得愉悦值 $1$ 并向城市 $2$ 出发。
- 第 $1$ 天,小 W 到达城市 $2$,获得愉悦值 $3$ 并向城市 $1$ 出发。
- 第 $4$ 天,小 W 到达城市 $1$,获得愉悦值 $1$ 并向城市 $2$ 出发。
- 第 $5$ 天,小 W 到达城市 $2$,获得愉悦值 $3$ 并向城市 $3$ 出发。
- 第 $7$ 天,小 W 到达城市 $3$,获得愉悦值 $4$ 并向城市 $1$ 出发。
- 第 $11$ 天,小 W 到达城市 $1$,获得愉悦值 $1$ 并结束旅行。
- 小 W 在该旅行中获得的愉悦值之和为 $13$。
输入格式
从文件
第一行四个整数 $n, m, T, k$,依次表示城市数、道路条数、旅行天数与美食节次数。
第二行 $n$ 个整数 $c_i$,表示每座城市的美食所能提供的愉悦值。
接下来 $m$ 行每行三个整数 $u_i, v_i, w_i$,依次表示每条道路的起点、终点与通行天数。
最后 $k$ 行每行三个整数 $t_i, x_i, y_i$,依次表示每次美食节的举办时间、举办城市与提供的额外愉悦值。
本题中数据保证:
delicacy.in 中读入数据。第一行四个整数 $n, m, T, k$,依次表示城市数、道路条数、旅行天数与美食节次数。
第二行 $n$ 个整数 $c_i$,表示每座城市的美食所能提供的愉悦值。
接下来 $m$ 行每行三个整数 $u_i, v_i, w_i$,依次表示每条道路的起点、终点与通行天数。
最后 $k$ 行每行三个整数 $t_i, x_i, y_i$,依次表示每次美食节的举办时间、举办城市与提供的额外愉悦值。
本题中数据保证:
- 对所有 $1\le i\le m$,有 $u_i \neq v_i$。但数据中可能存在路线重复的单向道路,即可能存在 $1\le i j\le m$,使得 $u_i = u_j, v_i = v_j$。
- 对每座城市都满足:至少存在一条以该城市为起点的单向道路。
- 每次美食节的举办时间 $t_i$ 互不相同。
输出格式
输出到文件
仅一行一个整数,表示小 W 通过旅行能获得的愉悦值之和的最大值。
若小 W 无法在第 $T$ 天回到城市 $1$,则输出 $-1$。
delicacy.out 中。仅一行一个整数,表示小 W 通过旅行能获得的愉悦值之和的最大值。
若小 W 无法在第 $T$ 天回到城市 $1$,则输出 $-1$。
输入输出样例
输入 #1
3 4 11 0 1 3 4 1 2 1 2 1 3 2 3 2 3 1 4
输出 #1
13
输入 #2
4 8 16 3 3 1 2 4 1 2 1 1 3 1 1 3 2 3 4 3 2 3 2 3 2 1 4 2 1 4 1 5 3 3 5 1 2 5 5 4 20
输出 #2
39
对于所有测试点:
$1\le n\le 50$,$n\le m\le 501$,$0\le k\le 200$,$1\le t_i\le T\le 10^9$。
$1\le w_i\le 5$,$1\le c_i\le 52501$,$1\le u_i, v_i, x_i\le n$,$1\le y_i\le 10^9$。
每个测试点的具体限制见下表:
特殊限制 A:$n = m$ 且 $u_i = i, v_i = (i \bmod n) + 1$。
$1\le n\le 50$,$n\le m\le 501$,$0\le k\le 200$,$1\le t_i\le T\le 10^9$。
$1\le w_i\le 5$,$1\le c_i\le 52501$,$1\le u_i, v_i, x_i\le n$,$1\le y_i\le 10^9$。
每个测试点的具体限制见下表:
| 测试点编号 | $n$ | $m$ | $T$ | 特殊限制 |
|---|---|---|---|---|
| $1\sim 4$ | $\le 5$ | $\le 50$ | $\le 5$ | |
| $5\sim 8$ | $\le 50$ | $\le 50$ | $\le 52501$ | |
| $9\sim 10$ | $\le 50$ | $\le 50$ | $\le 10^9$ | A |
| $11\sim 13$ | $\le 50$ | $\le 50$ | $\le 10^9$ | $k=0$ |
| $14\sim 15$ | $\le 50$ | $\le 50$ | $\le 10^9$ | $k\le 10$ |
| $16 \sim 17$ | $\le 50$ | $\le 50$ | $\le 10^9$ | |
| $18 \sim 20$ | $\le 50$ | $\le 501$ | $\le 10^9$ |
特殊限制 A:$n = m$ 且 $u_i = i, v_i = (i \bmod n) + 1$。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?