问题 6115 --我们是地火6115: 我们是地火
时间限制: 5 Sec 内存限制: 256 MB
提交: 19 解决: 7
[提交][状态][命题人:]题目描述
她习惯了人们失去家园,
也习惯了人们失去生命,
但一个人时,哭泣也无用。
「系上这条红丝巾,分担彼此痛苦。」
「我们是一家人…我们是地火。」
当宽阔的手掌抚上她的脑袋,她终于忍不住掉下眼泪。
在铆钉镇的孤儿院内,院长在给小朋友们上物理课。
当物体从高处飞下时,势能减少,动能增加。当物体从低处抛向高处时,动能减少,势能增加。
一个小球在在凹凸起伏的光滑地面滚动,初始动能为 e 。地面上有 n 个标记点和 m 条通道,每条通道连接两个标记点。每个标记点具有一定高度,小球在不同高度的势能不同,第 i 个标记点具有参数 h[i] 。
当小球从第 i 个标记点滚动到第 j 个标记点时,动能会减少 h[j]-h[i] (若 h[j]-h[i] 为负数,则表示增加 |h[j]-h[i]|),势能会增加 h[j]-h[i] (若 h[j]-h[i] 为负数,则表示减少 |h[j]-h[i]|)。
任何时候,动能都不能低于 0 。
求小球能否从 s 点滚动到 t 点。
输入
第一行包含一个整数 T (1≤T≤10^4) ,表示数据组数。
每组数据第一行包含两个正整数 n,m (2≤n≤3·10^5, 1≤m≤min(n(n-1)/2,2·10^5)) ,表示标记点数和通道数。
每组数据第二行包含 n 个整数 h[1],h[2],...,h[n] (1≤h[i]≤10^9) ,表示每个标记点的高度参数。
每组数据接下来 m 行,每行包含两个整数 u,v (1≤u,v≤n, u≠v) ,表示有一条通道连接标记点 u 和标记点 v 。
每组数据第 3+m 行,包含一个整数 q (1≤q≤2·10^5) ,表示询问次数。
每组数据最后 q 行,每行包含三个整数 s,t,e (1≤s,t≤n, 0≤e≤10^9) ,表示该次询问的起点、终点和初始能量。
保证所有数据的 n,m,q 各自之和,均不超过 2·10^5 。
输出
每个询问输出一行表示答案,若小球可以从 s 点滚动到 t 点,则输出 "YES" ,否则输出 "NO" (不包含引号)。
每组数据间,还需输出一个空行,如样例所示。
样例1:
YES
NO
YES
YES
NO
YES
NO
NO
YES
NO
样例2:
YES
YES
YES
YES
NO
YES
YES
YES
YES
YES
样例3:
YES
YES
YES
YES
YES
提示
来源
[提交][状态]