#B. [提高组模拟试题]副本挑战

    传统题 文件IO:instance 2000ms 512MiB

[提高组模拟试题]副本挑战

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

Description

Yazid 最近沉迷于一款冒险类游戏无法自拔。 这款游戏的地图可以抽象成一张包含 n 个节点 m 条边的无向图(节点和边的编号均从 1 开始),每条边带有边权,也就是说通过每条边所需的时间不尽相同。 Yazid 接到了 k 个副本任务,每个任务都要求 Yazid 进入一个独一无二的副本挑战 Boss。 其中,第 i 个任务(1 ≤ i ≤ k)的副本入口在节点 ui,其入. 口. 开. 放. 时. 间. 为 [li, ri],换而言之,Yazid 需要在规定时间内到达(或等候在)节点 ui,才能进入副本,挑战 Boss。 除此之外,每个副本的难度对于 Yazid 而言也不尽相同,经过精确的计算,Yazid 成功挑战第 i 个副本所需的时间为 ti,也就是说,如果 Yazid 在 T 时刻进入副本 i,那么他将在 T + ti 时刻将 Boss 挑落马下,并继续他的征程。 需要注意的是,入口开放时间只对玩家的进入副本时间作出限制,玩家仅仅被要求 在入口关闭前进入副本,并不被要求在入口关闭前完成 Boss 挑战。 每个任务的重要程度也是不尽相同的。完成第 i 个任务可以获得 ci 个金币的奖励。在第 0 时刻,Yazid 的角色身处节点 1。 请问,假设 Yazid 的策略安排得当,他总共最多能够获得多少金币奖励呢?

Input Format

从文件 instance.in 中读入数据。 第 1 行 2 个用单个用单个空格隔开的正整数 n, m,分别表示图的节点数、边数。 接下来 m 行,每行 3 个用单个空格隔开的整数 x, y, z,描述一条连接节点 x, y 的、 需要花 z 单位时间通过的无向边。 • 在这里,我们保证 1 ≤ x, y ≤ n。 接下来 1 行 1 个正整数 k,表示副本任务的数量。 接下来 k 行,每行 5 用单个空格隔开的整数 ui, li, ri, ti, ci 描述一个任务,意义见 【题目描述】。 • 在这里,我们保证 1 ≤ ui ≤ n,li ≤ ri。

Output Format

输出到文件 instance.out 中。 输出一行一个整数,表示 Yazid 最多能够获得的奖励金币数目。

Sample

【样例 1 输入】

3	2	
1	2	10
2	3	10
2		
1	0	50 20 1
2	0	39 20 1

【样例 1 输出】

2

【样例 1 解释】

Yazid 应先前往 2 号节点执行第 2 个任务,然后再回到 1 号节点执行第 1 个任务,
才能同时完成 2 个任务。

【样例 2 输入】

4	6	
1	2	1
1	3	5
1	4	10
2	3	2
2	4	3
3	4	15
3		
1	0	20   2   1
3	4	20   6   2
4   15  15   2   2

【样例 2 输出】

4

【样例 2 解释】

Yazid 可以依次完成任务 2, 3,但如若这么做,他将不得不错过任务 1,因此他最多只能获得 4 个金币。

【样例 3】

见选手目录下的 instance/instance3.in 与 instance/instance3.out。

【子任务】

详见PDF

Hint

对于所有测试点,保证 n ≤ 200,m ≤ 20, 000,k ≤ 18,1 ≤ z ≤ 10^4,0 ≤ li, ri, ti ≤ 10^7, ci ≤ 10^4。

2019提高组模拟赛

未参加
状态
已结束
规则
OI
题目
3
开始于
2019-11-14 8:00
结束于
2019-11-14 11:30
持续时间
3.5 小时
主持人
参赛人数
2