在乙個無限大的二維網格上,你站在(a,b)點上,下一步你可以移動到(a + b, b), (a, a + b), (a - b, b), 或者 (a, a - b)這4個點。
給出起點座標(a,b),以及終點座標(x,y),問你能否從起點移動到終點。如果可以,輸出"yes",否則輸出"no"。
例如:(1,1) 到 (2,3),(1,1) -> (2,1) -> (2,3)。
收起
第1行:乙個數t,表示輸入的測試數量(1 <= t <= 5000)
第2 - t + 1行:每行4個數,a, b, x, y,中間用空格分隔(1 <= a, b, x, y <= 10^18)
輸出共t行,每行對應1個結果,如果可以,輸出"yes",否則輸出"no"。
2
1 1 2 3
2 1 2 3
yes
yes
就看他的最小公倍數和他的最小公倍數是不是相等,其實按照規則去思考,你會發現能到達的點都是最小公倍數能到達的點。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
long long cn(long long u,long long v)
int main()
return 0;
}
51nod 1247 可能的路徑
逆向思維,先證明點p1可以到點p2,然後可以從p2返回p1。然後找一點m,如果點 a,b 可以到達m,並且點 x,y 也可以到大m,則 a,b 可以到達 x,y 相關討論裡給的證明 給個不太嚴謹的證明思路 第一步 證明路徑可逆,也就是如果 a,b x,y 可行,則 x,y a,b 可行 這個比較直觀...
133 所有可能的路徑
題目描述 給乙個有 n 個結點的有向無環圖,找到所有從 0 到 n 1 的路徑並輸出 不要求按順序 結點的數量會在範圍 2,15 內。你可以把路徑以任意順序輸出,但在路徑內的結點的順序必須保證。使用回溯和遞迴進行 class solution public static void dfspath l...
797 所有可能的路徑
一 dfs回溯 class solution object 方法一 dfs def allpathssourcetarget self,graph type graph list list int rtype list list int if not graph 0 return res n len...