【AtCoder】ABC226のD問題の公式解説をYoutubeでみました。そこで解説されてるかたが書かれたコードで意味がわからないのがあったので質問させていただきます!
この動画の1:16:51あたりで、
c++
1bool operator<(const frac& x) const { 2 return a * x.b < x.a * b 3}
という部分があると思うんですけど、これが何を表しているのかちょっとよくわからないです????
例えば、引数としてfrac(4,6)を入れたとすると、gcd(4, 6) = 2なので、a=4, b=6, x.a = 2, x.b = 3となり、operator<関数が返すのは return 4 * 3 < 2 * 6 となってfalseとなるのでしょうか?だとしたらそのfalseにはどんな意味があるのでしょうか?
どなたかこのコードに対するわかりやすい解説をよろしくおねがいします????
###解説に使われていたコード(構造体の部分)↓
c++
1struct frac { 2 ll a, b; 3 frac(ll _a=0, ll _b=1): a(_a), b(_b) { 4 if (b == 0 ) { a = 1; return; } 5 if (b < 0 ) a = -a, b = -b; 6 ll g = gcd(abs(a),b); 7 a /= g; b /= g; 8 } 9 bool operator<(const frac& x) const { 10 return a*x.b < b*x.a; 11 } 12};
回答5件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。