Sabitlenmiş Tweet
tardigrade(たーでぃぐれいど)
10.5K posts

tardigrade(たーでぃぐれいど)
@akTARDIGRADE13
競プロ・勉強垢 北大理学院 宇宙理学専攻M1 Algorithm:AC青CF青 Heuristic:AC黄TC青 興味のある分野 物理学全般、数値解析、計算科学、数理最適化、機械学習 縮小・日常垢:@TARDIG_kagi
Katılım Eylül 2020
604 Takip Edilen955 Takipçiler

tardigradeさんのAtCoder Regular Contest-- 219での成績:103位
パフォーマンス:2395相当
レーティング:1615→1722 (+107) :)
#AtCoder #ARC219
ARC--、最高のゲームです
atcoder.jp/users/tardigra…
日本語

@celestial_dater 自分は2×2のケースをたくさん考えていました
(2,2)だけに石を置くことにすると、石の個数やkの値をどのように設定してもBobが勝ち、(1,2)や(2,1)だけに置くとgrundy数はa%(k+1)になることに気づいて、そこから解法をエスパーしました
日本語
tardigrade(たーでぃぐれいど) retweetledi

#AHC064 1位!グッと睨んで貪欲を書いたら平均50手くらいだったので、ビムサにしました。seed0: 31手
以下AI解説。
1/ 評価関数 (核)
連続 ID ペア (10r+c, 10r+c+1) 90 組と、各線の先頭 (10r が dep[r][0] にあるべき) 10 個に対してペナルティ加算。0 が完成。
ペアの基本ペナルティ:
- 隣接連結済み: 0
- 即連結可能 (a が出発線末尾 + b が待避線先頭): 800 (REACH)
- 片端だけ露出: 1400 (ONE_SIDE_EXPOSED)
- どちらも未露出: 1500 (UNCONNECTED)
ペアの縦方向加算 (vertical):
- 同線・同種・正順非隣接: +60 (間に車両が挟まってる、退避必要)
- 同線・同種・逆順: +800 (めちゃ重い罰)
- それ以外 (別線/異種): +30
ペアの横方向加算:
- 線番号差 × 3
先頭 (Top) ペナルティ:
- ベースは同じ (REACH 800 / ONE_SIDE 1400 / UNCONNECTED 1500)
- vertical: 車両が出発線にいる → +60、待避線にいる → +100
- horizontal: 同じく線番号差 × 3
2/ 1 ターンの手の選び方 (DP)
ターン内では、(出発線, 待避線) のペアが昇順に揃ってないと交差してダメ。なので候補手のうち以下の制約で gain 最大化:
- 出発線 i は各 1 回だけ使える
- 待避線 j は昇順 (i 昇順 ⇒ j 昇順)
候補手 (i, j, k, type) のうち各 (i, j) で gain 最大の手を 1 つ取り、dp[i][last_j] で「i 本目まで処理済み・最後に使った待避線が
last_j」の状態を更新。最大 10 件まで同時実行可能な組み合わせを構成。
3/ 探索 = ビームサーチ + ランダム倍率
シンプルな貪欲だと局所解で止まる。各親ノードから候補手の評価値に 0.3〜1.0 のランダム倍率 を掛けて DP に流し、15
通りの「同時実行可能な手集合」を生成 (=15 子展開)、上位 W=200 状態を残す。多様性を強制注入。
初手だけ 100 通りに広げて初期分岐を増やす。
4/ 重複除去 (Zobrist)
別経路で同じ状態に着地する beam state を排除。ハッシュは O(1) 差分更新。
5/ 高速化
- 各候補の評価値計算を「現状からの差分」で O(1)
- 「k 個運ぶ」を「k+1 個運ぶ」に拡張する増分計算 (差分の差分)
- 状態は固定サイズ struct で memcpy snapshot
6/ 結果
平均スコア 4,968.84 / 5,000 (T=31 前後)。
GIF
日本語
tardigrade(たーでぃぐれいど) retweetledi

@yuuDot_kyopro はい、出ます。ただ、定額支給であまり多くはないです
具体的な額は年によって変わりますが、去年で言うと
- JAL往復セイバーを利用
- 会場近くの普通のビジホに二泊三日
で数千円の赤字といった感じでした
日本語
tardigrade(たーでぃぐれいど) retweetledi
tardigrade(たーでぃぐれいど) retweetledi














