ABC378 (2024/11/02)
〇A問題
まーす.icon$ a_{n} \coloneqq \operatorname{Card}(\{i \in \{1, 2, 3, 4\} | A_{i} = n \}) ($ \operatorname{Card} は,集合の濃度を表す)として,$ \sum_{n=1}^{4} [\frac{a_{n}}{2}] .
CarpDay.icon$ a_n := |\{A_i=n | i\in\{1,2,3,4\}\}|,つまり,$ a_nは色$ nの個数,ということ?
まーす.iconそうです.濃度は英語でCardinalで記号では$ \#(集合)と表したりします.勿論,$ |集合|の表記もありますが,ガウス記号と記号が似ていたので,上記のように表記しました.
tako.icon Whitespaceのトランスコンパイラを作ったので使ってみる。トランスコンパイルする前のコードを消したのでどんな感じに解いたががわからない。確か、同じ色のボールの個数を数えて、2個か3個なら答え+=1、4個なら+=2みたいな感じ
CarpDay.iconこれほど,他の人のコード見てもさっぱりわからないコードはないよね(^^;
Kaplam.iconやるだけ
CarpDay.icon集合とって,4種類なら0回,3種類なら1回,1種類なら2回,までは良かったけど,2種類のときにさらに場合分けになって残念..
yuichang.iconやる
kakip.iconCounterのvaluesをそれぞれ2で割ったやつのsum, 実質1行
〇B問題
Kaplam.iconやるだけだけど制約見てなくてTLEった_(:3」∠)_
tako.icon 同様にWhitespaceで。listにも対応しているし、for文だって書けちゃいます。
まーす.icon途中で混乱した.昨日,ちょっと遊びすぎた......
CarpDay.icon意外に難しかった.B問題から解いたので,結構焦った.
yuichang.icon読みにくい。やる
〇C問題
Kaplam.icondictでメモするだけ
tako.icon ここまでWhitespace。辞書はWhitespace標準のheapを使えばいける。
まーす.iconKaplam.iconさんと同じ.Bより簡単.
CarpDay.icon上に同意.
yuichang.icon 最後の位置をmapでメモる
〇D問題
Kaplam.icon4^11*10*10は間に合わないから同じマスを踏まない動き方を前計算で求めて(K = 11で120292通り)それ*100で全探索、やけに難しいと思ったらもっと簡単なやり方あったのね、久しぶりに大負けで悲しみ_(:3」∠)_
まーす.iconとばしてEへ.
tako.icon こっからpython。dfsするだけ。最大でも11までしか潜らないからpypyでもいける。再帰関数(厳密にいうと関数ではなさそうだけど)はWhitesapceでもかけそうだけど、setを作っていないから少し厳しそう
CarpDay.iconDFSで時間間に合うか心配で飛ばす.F問題から戻って順位表みたらみなさん解いているので,DFSをキュー(でもなく単なるリスト)で実装.キューだと行き掛けと帰り掛けの処理が必要なのが面倒.盤面に記録するタイミングを誤って時間ロス.終了5分前にAC.久しぶりに仲間内で1位だ!と思ったら..
tako.icon DFSならキューではなくスタックでは?
CarpDay.iconおっしゃる通りでした.ご指摘ありがとうございます.いつもはBFSでもDFSでも何も考えずdeque使っているけど,今回はリストで実装しました.
yuichang.icon適当に書いたらTLEした、関数の引数に配列を値じゃなくて参照で渡すと通った
〇E問題
まーす.iconmodの扱いが難しくて,いろいろ工夫を考えている内にゲームエンド.......面白そうなので,もうちょい粘る.
CarpDay.icon最後もmod取るなら,mod無視して最後にmod取ればいいやん,と思ったら最後はmodなし..DPっぽく要素を追加して考えたが,modで循環する処理が思い浮かばず,飛ばす.
yuichang.icon累積mod取って主客転倒?してセグ木
〇F問題
CarpDay.icon好みのグラフ問題.次数3のグループの周りにある次数2の個数がn個なら,nC2個つなぎ方がある.半信半疑で提出したらAC.ラッキー.
yuichang.icon初6完!次数3の頂点達を繋いで隣接してる次数2の頂点を数える
CarpDay.iconおめでとう!ラスト2分での滑り込み,すごかったです!!
yuichang.iconありがとうございます><
〇G問題