MM 95
- masashinakata
- 7874
- 0
- 0
- 0
MM、自分の方針を信じて疑わずに突き進める人達凄いと思ってる(実際の得点とか色とか関係なく) 僕はいつでも五里霧中
2017-10-12 13:07:31@kosakkun 与えられた画像の幅と高さを例えば2分の1にして、中身は例えば半径10の円の平均値で前処理すれば、その一点だけでスコアの差分が計算出来て速くなりメモリも節約できるかなという考えです ※ぼくが提出したコードは画像のそのままの山登りのパラメータ調整です
2017-10-12 13:25:11@kosakkun ぼくが提出したコードは大きい円から描いて小さい円にする方法です(細部を小さい円で塗るため) iwashiさんのブログにあった初手全ぬりは中央値で2回しています(drawImageで半分にされるため2回) 半径の決め方はパラメータ調整(何もわからない)です
2017-10-12 13:48:46@masamasakt1023 なるほど, 何だかんだ他の人と方針が似通うのが面白い. 僕も全塗りに 1 個使いました. 2 回で 75% の濃さになるから, 平均を 1.5 倍したら 1 個で十分なんじゃないかなあって思いましたがあまり上手くいかず... ありがとうございます.
2017-10-12 14:06:43@kosakkun あーなるほど1.5倍(´・ω・`) こちらこそどうもです、終わったあとのいろんな方針を聞くのは楽しいですね。赤い人のコード見て精進します><
2017-10-12 14:13:47マラソンマッチ、おつかれさまでした。 おおざっぱにやったこと:「いろんな場所にいろんなサイズの円を置いてみて(色はスコア改善が最大になるのを選ぶ)、いちばんスコア改善が大きいやつを採用」をN回繰り返す、というザ・貪欲
2017-10-12 16:06:19大きい円の計算量減らすため、まずは1/2^kの縮小画像にマッチングして良さそうな円を絞り込み、1段階大きい画像に(前段で良かったの+小さい円のみ)からマッチングして良さそうなのを絞り込み、もう1段階大きいヤツに…と再帰的にやった
2017-10-12 16:12:24「greedyに」「実際のスコア関数を改善する」のは明らかに筋悪で、 ・greedyだとドーナツ状とか2円以上の組み合わせには絶対たどりつけないし、 ・実スコア関数だと最終段階ではベストでも、初期段階は半端な色に寄せることになって結局全箇所塗り直さなきゃってことになる
2017-10-12 16:21:47半端な色で塗っちゃう点は、使う円と順番を固定した後、「この点は今後k回上塗りされるから色はあんまり重要じゃないけど、こっちは上塗り無いから重要だ」みたいに重み付きでmedian取って色を決め直すことで微妙に改善された。でも円の選択段階でそれをやらないとなあ
2017-10-12 16:27:37序盤からパラメータいじって一喜一憂するのはダメなパターンだけど、終盤になってもパラメータいじる形に持っていけてなくて一発逆転の大変更をウンウン考えてるだけになるのもダメなパターンだ(今回はこっちだし、こっちにもよくハマる)
2017-10-12 16:40:28累積和(累積ヒストグラム?)を作れば半径rの円内のスコアはO(r)だよな、とか思ったけど、int[800*800*3*256] とか富豪すぎた
2017-10-12 17:24:02