2021/2/28(日)
ジョギングに行った。つま先着地で走ると衝撃を脚でなく足で受け止める形になるから膝があまり痛まないような気がする。今日はいつものコースの7kmを否応なく完走できた。右ひざも別に痛くない。同じコースをもう半周くらいは行けてしまいそうに感じた。
つま先着地はいいのだが、拇指球が痛むのだけはどうにもならない。皮が厚くなるの待ちといったところか。
昨日解けなかったABC193-Eを解いた。
方針分かってりゃ余裕っしょみたいな気分でいたのだが、普通に苦戦した。
一次不定方程式をextGCDで解こうとして、まあ答えは出るけど、最小の非負整数という縛りを満足させるための後処理がひどくややこしくなってしまった。
絶対こんなん想定してないだろと思ったら、CRT(中国剰余定理)のアルゴリズムであればもともと最小の非負整数を出すものなので何も頑張る必要ないらしい。$t=N(2x+2y)+x=M(p+q)+t_2$みたいな感じの式を自分は$N(2x+2y)-M(p+q)=t_2-x$みたいな一次不定方程式まで還元してしまっていたのだが、CRTであれば$t\equiv x \pmod{2x+2y}$ $t\equiv t_2 \pmod{p+q}$というそのままの形で適用できる。
単純にCRTを良く知らなかったから苦戦した。今回知れたのでこの知識を使い慣れていきたい。
ちなみに一次不定方程式$ax+by=c$を解くだけのライブラリを作った。使うか知らないけど。
bool axbyc(lint a, lint &x, lint b, lint &y, lint c) {
lint g = extGCD(a, b, x, y);
if (c % g != 0)
return false;
lint n = c / g;
x *= n;
y *= n;
return true;
}
最近、複雑なものを複雑なままに頭の中に入れる能力を鈍らせてしまった気がする。精神休養の意味合いでここのところしばらく呆としていたのが大きいが、いつまでもこうしている訳にもいくまい。リハビリせねば。
Categories: 未分類