hihocoder8 [Offer收割]编程练习赛8 小Ho的强迫症
数学题,找循环节,枚举
//http://www.cnblogs.com/IMGavin/ #include <iostream> #include <stdio.h> #include <cstdlib> #include <cstring> #include <queue> #include <vector> #include <map> #include <stack> #include <set> #include <bitset> #include <algorithm> using namespace std; typedef long long LL; #define gets(A) fgets(A, 1e8, stdin) const int INF = 0x3F3F3F3F, N = 1008, MOD = 1003; const double EPS = 1e-6; LL gcd(LL a, LL b){ while(b){ LL t = a % b; a = b; b = t; } return a; } LL lcm(LL a, LL b){ return a / gcd(a, b) * b; } int main(){ LL l, f, d; int t; cin >> t; while(t--){ cin >> l >> f >> d; if(f == 0){ printf("YES\n"); }else{ if(l == 0 || d == 0 || f > l){ printf("NO\n"); }else{ if(d % l == 0){ printf("YES\n"); }else{ if((l % (d % l) == 0) && f <= (d % l)){ printf("YES\n"); }else{ LL lc = lcm(d, l); LL t1 = lc / d; bool ok= 1; for(LL i = 1; i < t1; i++){ if((l - i * d % l) < f){ ok = 0; break; } } if(ok){ printf("YES\n"); }else{ printf("NO\n"); } } } } } } return 0; }