JMO2019予選

自分は競技プログラミングに関して明らかに行き詰まっていて、最近ではレートさえ落ち始めたので、何かしようと思った。

社会に目を向けると、強い競技プログラマー数学オリンピックも強そうということがわかった。

だから、数オリをやってみた。

とりあえず2019年のJMO予選をやった。

成果

一時間と数分で1から6までの六問を解いた。本選行きボーダーが5問らしいので、それには通過できた。(TAISA_が7問と主張していたので終了後は悲しい気持ちになっていたが、自分で調べると違っていた。)追加の一時間で7から9を考えたが、一問も解けなかった。10以降は人間向けでないらしいので、やらなかった。

 頭が良くなりそうという感想を持った。

内容

1問目

x(1+y(1+z))=31みたいな問題。

簡単な枝刈りで解ける。 

正解:2分

2問目

(100p+10q+r)^2が{2,3,5,7}からなる5桁の数になるものを列挙するような問題。

一の位に注目すると、必ず5であることが分かる。

小さい方から調べていくが、三桁×三桁はすぐ六桁に上がるので、4つくらい調べれば良い。

正解:6分 

3問目

3×3のマスに1~9を入れて、隣接したものの差が3以下になるようにする方法を数え上げる問題。

条件がかなり厳しいので、中心の値を決め打ってパズルをすると解ける。

正解:17分

4問目

五角形の中で遊ぶ問題。

愚直に相似を取ると解ける。

正解:9分

5問目

n=97*a+32=100*b+33=103*c+34なる最小の自然数nを求める問題。

愚直にユークリッド互除法で解いた。

32*3+1=97、33*3+1=100、34*3+1=103を使うと楽に解けるらしい。

正解:10分

6問目

120角形の頂点集合であって、頂角が18度の二等辺三角形がないようなものの最大のサイズを求める問題。

円と三角形の何かしらの公式を使って、中心からの角度が36度であると言い換える。

角度に注目すると、頂点のindexのmod6で独立なので、分けて考える。

すると、20個の頂点の中から(2,9,9)が生まれないように選ぶ問題になる。

偶奇で何かすることを考えると、奇数のindexのものを180度回転させることで、「三連続で頂点を選ばない」という制約に言い換えられる。

この制約なら、貪欲に取っていけば良い。

正解:19分

AtCoderに出そうだと思った。

7問目

整数2次多項式P,Q,Rに対して、P(1)=P(2)=Q(3)=0かつすべての係数の最大公約数は1であるようなとき、R(x)(^2=P(x)^2+Q(x)^2)を列挙する問題。

x^4の項や定数項に注目してみるが、何も得られない。

虚無:23分

未確認

 

P(x)^2=(R(x)+Q(x))-(R(x)-Q(x))と変形すると良いらしい。

8問目

内心の問題。

内心外心の問題は普通の模試の問題すら解けないため、何もできない。

虚無:4分

未確認

9問目

 4×4のグリッドを4色で配色して、すべての行・列について色が{1,1,1,1}か{4,0,0,0}か{2,2,0,0}になるようなものを数え上げる問題。

KmCodeが「9問目は競プロ!」と言っていたので考えた。

{4,0,0,0}がある場合は簡単に数えられる。

すべて{1,1,1,1}である場合は気合で数えた。

{2,2,0,0}の個数で場合分けしようとするが、綺麗に分かれなかった。

数オリ特有のテクニックでもあるのではと思って諦める。

虚無:18分

確認済み

 

色を{0,1,2,3}としたとき、各行、列でxorがゼロになっていることが必要十分で、これはちょうど左上の 3×3のマスを自由に当てはめ、それ以外を自動的に埋めることで対応できる。言葉で表されている制約・条件を結合律・交換律のある演算で表現すると良いらしい。