HDU 1222 Wolf and Rabbit(數論)
阿新 • • 發佈:2020-09-15
題目大意
有一座山旁邊為N個山洞連成環形,編號為0,1,2,3,4,...n-1一頭兔子和一隻狼來到了這座山上.為了防止被狼捉到,兔子需要藏進某個洞裡 ,狼第一次進入編號為0的洞口,然後每次只能前進m個洞口,例如m=2,n=6,則狼將進入0,2,4,0,2,4....所以兔子只需躲在編號為1 3 5 的洞裡即可逃生。
解題思路
當n與m互質的時候,狼肯定能訪問到每個洞,負責不能。
證明:當n與m互質的時候,如果需要走到0號洞,那麼就必須走lcm(n,m)步,又因為有n個洞,所以必需要走\(n\times m\)步,那麼就需要gcd(n,m)=1才能使\(lcm(n,m)=n\times m\)
程式碼
const int maxn = 2e3+10; const int maxm = 1e4+10; int main() { int t; cin >> t; while(t--) { ll a, b; cin >> a >> b; if (__gcd(a,b)==1) cout << "NO" << endl; else cout << "YES" << endl; } return 0; }