AHC016へっぽこ参加記録



111位でした!やったー!

順位表

せっかくなので

なんともいえない順位の

なんともいえない解法を

 

書きます

 

~2日目(1億点)

サンプルコードを改造!

 

これを

10000000000000

11000000000000

11100000000000

 

こう

0000000000000

1111110000000

1111111111111

 

ノイズに強そうだなとおもったからです(小並感)

 

~7日目(4億点)

ノイズについて思いを馳せることふつかみっか・・・

 

「ノイズ2:点をシャッフル」←これ

 

これはなんなのか・・・と.

 

そして理解(わか)りました

 

ノイズ2で保存される情報,それは・・・

  • STEP1 全体の線の本数(サンプルコード)
  • STEP2 各点それぞれから生える線の本数
  • STEP3 グラフの形(化学でいう異性体みたいなものも見分ける)

 

きっと最上位の猛者達はSTEP3まで進んで,多様なグラフを生成,デコードしているのであろう...(違いました)

 

せめて自分はSTEP2まで行こう・・・

そう思ったのでした・・・

~完~

 

というわけにもいかないので

STEP1の調整しました(4億点)

  1. eps=0の満点解答の作成
  2. STEP1でのNの最適化

 

2に関しては

エクセル(手作業)で.

STEP1のやりかたでエラーがなくなるN

う~ん頭悪そう

 

 

~最終日(10億点)

 

自分の脳内ではSTEP2は

gの取りうる空間みたいな(横:線の本数,縦:グラフの種類)

いろんな種類のgを作れる,まさに金脈のようなイメージ

 

ここに如何にgを配置するか・・・

 

・・・乱数で生成!(この手に限る)

 

→5億点

 

あれ????しょぼくね????

多少高速にしたり,パラメーターいじっても6億どまり,とにかく

何かがおかしい・・・(今更)

 

おかしいおかしいとうなされ続け,

最終日の朝4時,お布団の中で天啓が・・・!

 

点から生えてる線の数をソートしたもの
①乱数生成②うに型③団子型(クリーク)

これは,「点から生えてる線の数をソートしたもの」です

 

わかったことその1

乱数でつくったものは,大体①みたいな形になってしまう

そんなにノイズ1につよくない・・・

 

わかったことその2

サンプルコードをベースに作ってたのですが,

これは上の図でいう②,

これをうに量産型と呼びます

これ実は万能ではなくて,

線の本数が少ない:③より②の方がノイズ1に強い

線の本数が多い:②より③の方がノイズ1に強い

 

うに量産型・・・お前線増えると弱かったんか・・・

てっきり線の本数にたいして線対称かと・・・

 

 

結局,

  • 線の本数が少ない:うに量産型
  • 線の本数が普通:うに量産型とクリークを交互に
  • 線の本数が多い:クリーク
  • 広めの間隔で乱数生成型も設置しておく
  • 余った時間で乱数生成もする(この手に限る)
  • エクセルでN調整もする

Nの最適化

結果,最終スコア10億点でした.

ひらめきも大切ですが,ダサいやり方でもスコアが上がるのはAHCの魅力ですよね

Atcoder replay

LeiteさんのStatistics


ここまで読んでいただきありがとうございました.