最終順位319位で、予選通過はダメでした。(ツイッターで317位と書いてしまったけどまだジャッジ中だったみたい)
コンテスト後のツイート
ツイートを見ていたら同じ勘違いをしていた人が何人かいたけど、各数字が、0,1,2,..と並べたときと同じ段にならなくてはいけないと勘違いしていました。
— titia (@titia_til) June 25, 2023
コンテスト開始30分後あたり~終了まで。
それで132くらいは出ることも、勘違いを気付きにくくする原因になってしまった。
解法は、ツイートの通りで、
・大きい順に、経路のコスト(置きたい段との差をコスト)を求めるDPをしてコストが小さいものを採用、としました。
ただ、これは勘違いしていたせいです。ツイートを見ていたら同じ勘違いをしていた人が何人かいたけど、
・各数字が、0,1,2,..と並べたときと同じ段にならなくてはいけない
と勘違いしていました。それで最初言ったような解法になってしまった。
アルゴリズムの問題でもそうだけど、誤読とか、勘違いとかを一度してしまうと修正するのは難しい。
今回は、最初に「適当に上下で値が入れ替わっていたら交換しまくる」というのを提出しているので、それでOKだったことを振り返る余裕があれば気付けたはずなのだけども……。まあそんな余裕はなかった。
ただ、この勘違いがなくても、上手くできたかどうか。
今回は、「13426585点が取れる貪欲アルゴリズム」を思い付けるかどうかが鍵だったが、これで上手くいくというのはそれほど明らかじゃない気がした。
さらに、その改善ともなると、うーん。Kiri8128さんの解説の評価関数も全く思いつかなかった。これを実装したら確かに改善したけど、自分で思いつけたかというと……。
ただ、コンテスト中、順位表で上位に同じ点数の人がたくさんいるのは見て、「何か簡単な解法があるはず」とは気付いていたのだから、とにかく色々な貪欲を試してみるべきだった、とは思う。
・小さい数字から試す
・上の二つのうち大きい方と交換
というの自体は両方とも考えたことはあったのだから。
それで自分の点数より伸びるとは思わなかった(ことと、勘違いしていた)から試さなかったのだけれど、それでも実装してみて、他にどんな解法やパラメータがあるか探らなくてはいけなかったのだろう。
0 件のコメント:
コメントを投稿