题目背景
由于本题数据较难构造,所以无法保证卡掉所有错误做法。
题目描述
小 D 有一个长度为 n 的整数序列 a1…n,她想通过若干次操作把它变成序列 bi。
小 D 有 m 种可选的操作,第 i 种操作可使用三元组 (ti,ui,vi) 描述:若 ti=1,则她可以使 aui 与 avi 都加一或都减一;若 ti=2,则她可以使 aui 减一、avi 加一,或是 aui 加一、avi 减一,因此当 ui=vi 时,这种操作相当于没有操作。
小 D 可以以任意顺序执行操作,且每种操作都可进行无限次。现在给定序列与所有操作,请你帮她判断是否存在一种方案能将 ai 变为 bi。题目保证两个序列长度都为 n。若方案存在请输出 YES
,否则输出 NO
。
输入格式
本题输入文件包含多组数据。
第一行一个正整数 T 表示数据组数。对于每组数据:
第一行两个整数 n,m,表示序列长度与操作种数。
第二行 n 个整数表示序列 ai。
第三行 n 个整数表示序列 bi。
接下来 m 行每行三个整数 ti,ui,vi,第 i 行描述操作 i。
注意:同一个三元组 (ti,ui,vi) 可能在输入中出现多次。
输出格式
对于每组数据输出一行一个字符串 YES
或 NO
表示答案。
3
1 1
1
3
1 1 1
2 3
1 2
4 5
1 1 2
2 1 2
1 1 2
3 3
1 2 3
5 5 4
1 1 2
1 1 3
2 2 3
YES
YES
YES
提示
样例 1 解释
第一组数据:使用一次操作 1。
第二组数据:使用三次操作 1。
第三组数据:使用三次操作 1,令 a1,a2 都增加 3,再使用一次操作 2,令 a1,a3 都增加 1。
数据范围与提示
对于测试点 1∼5:n=2,m=1,ai,bi≤99,u1=v1,t1=1。
对于测试点 6∼10:n=2,m=1,ai,bi≤99,u1=v1,t1=2。
对于测试点 11∼12:n=2,ai,bi≤99,ui=vi。
对于测试点 13∼16:ti=2。
对于测试点 17:n,m≤20。
对于测试点 18:n,m≤103。
对于所有测试点:1≤T≤10,1≤n,m≤105,1≤ai,bi≤109,ti∈{1,2},1≤ui,vi≤n。