競技プログラミング
優先度付きキューを使う Python の heapq は 最小値を取り出す AtCoder ARC #028 B - 特別賞
DISCO presents ディスカバリーチャンネル コードコンテスト2017 予選 - DISCO presents ディスカバリーチャンネル コードコンテスト2017 予選 | AtCoder C 2本しか入らないので,小さいものと大きいものをペアにすることを考える DDCC 2017 予選
グラフで考える Union Find B: 大事な数なのでZ回書きまLた。 - AtCoder Regular Contest 027 | AtCoder AtCoder ARC #027 B - 大事な数なのでZ回書きまLた。
C: 壁抜け - AtCoder Beginner Contest 020 | AtCoder AtCoder ABC #020 C - 壁抜け
C: 正直者の高橋くん - AtCoder Beginner Contest 021 | AtCoder AtCoder ABC #021 C - 正直者の高橋くん
C: Blue Bird - AtCoder Beginner Contest 022 | AtCoder 1 から出て 1 に戻る道を考えるが,まず,1に隣接している点から出て別の隣接している点に戻る道を考える. 1を除いたグラフについてワーシャルフロイドで全組み合わせの最短距離を求めておく. 1に…
C: 収集王 - AtCoder Beginner Contest 023 | AtCoder AtCoder ABC #023 C. 収集王
Beginner の方に出て A, B, C 解けて 69位 Rating は 1157 -> 1210 B 順位でソートして,最下位の順位 + 最下位の得点 を出力 C N が偶数の場合は なので,N, N, N/2 を出力 Nが奇数の場合は, だから, が偶数にならないといけなくて,それはn と h のどち…
増加数列の組に分ける,ってとこまではわかるんだけど,その個数が最長減少数列の長さに等しい,というのがわからない. Segment Tree 使うのはこういうところで使うんだ,と思った. とにかく,解説を写経. CSAcademy #050 D. Min Races
初出場. レイティングは 1500 スタートらしく, 1500 -> 1457 問題セットは, 100 - 100 - 100 - 400 - 700 で,100 の3つは解けた. 解説がすぐに出るのがよいと思った. CSAcademy Round #50
普通にシミュレーション そういえばSRM ってPython 2系だったっけ TopCoder SRM #721 Div2; Small. FlightDataRecorder 久々に出場しようとしたが,High Sierra のアップデートに失敗してMacが死んでいたので出られなかった.
貪欲法 グラフかと思ったけど,図を書いてみると直線でいけるらしいとわかった. AtCoder ABC #024 C. 民族大移動
ゲーム木の探索 メモ化しないと TLE になった memo の key を作るのを,join() から pack() に変えて,min() max() を if にしたら 80ms ぐらい速くなった. AtCoder ABC #025; C. 双子と○×ゲーム
面積Nをいくつかの正方形で表すとき,必要な最小個数を求める dp する. 最大になるのは,1ばっかりで作るときで,そこから 面積x の正方形を使うか使わないか で決めていく.
A の small と large だけ解けた A. Kicksort クイックソートの亜種が与えられて,ピボットの選び方が最悪ケースになるかどうかを判定. 最悪な選び方というのは,最大もしくは最小を選ぶ場合なので,それをシミュレーションする. 制限時間12時間あったので…
を左, を右としてシミュレートして二分木を作ると,深さの偶奇によって,それぞれのプレーヤーの最適な戦略は常に左もしくは常に右となる AtCoder ABC #027 C 倍々ゲーム
解説見て解いたら通らなくて,色々見てると,4個の組みは考慮しなくてもいいらしい,となった. 4個の組みは2個の組みに分解できるから,みたいなことだろうか. Code Festival 2017 Qual A C: Palindromic Matrix
A, B の2問解いて 1024位でした. Rating: 1161 -> 1157 あんまり下がっていなかったので,難しかったのではないだろうか. 行列ばっかり出てきて辛かった. B 全部試せるなー,と思って考えてたらできた. C,D ぐらいまでは復習しよう. Code Festival 201…
再帰で書くとREになって,stack level too deep (SystemStackError) らしいので,ループで書く. AtCoder ABC #070 D
AtCoder ABC #074 / ARC #083
A, B, C 1112 -> 1161 C 全探索するのだけど,普通にやると間に合わないので,stepを適切に求めてからする. D Restoring Road Network まず,全点対最短経路であるとしてワーシャルフロイドを試し,最短ではなかったら -1 . そのあと,寄り道した場合と直…
A, B, C 1147 -> 1112 D はワーシャルフロイドで全ての町の間の距離を求めて,訪れる町の順列をすべて試す. AtCoder ABC #073
AtCoder ABC #070 C
勉強のために Rust にも移植. 150 ms. 慣れていなくて全然コンパイルが通らないんだけど,エラーメッセージに従ってなおして行くと通るようになって楽しい,みたいな感じになってくる. ここは mut でしょ,って書いてたら mut じゃなくてよくね,って言わ…
Python で解いてTLEだったので,Go に移植. 最初,通ったものの1600 ms とぶっちぎりで遅かったので, qiita.com を見てプロファイリングしてみたら,どうやら読むとこと書くとこが遅いっぽかったので, 最後に書き出すところを strings.Join() してから fm…
C問題にはまってしまって,時間がかかりすぎた. Dは簡単だったので,先に解けばよかった. 1201 -> 1183 C 2を0,1,2個含むものに分けて数える. 解説見ると,難しく考えていたみたいだ. D 順番に出力すれば終わり. 端に行ったら折り返す. 「うなぎ」っ…
まだ何がベストかわからないのだけど,とりあえず現状は, N M みたいに整数のペアが空白区切りで与えられた場合, use std::io; use std::str::FromStr; fn main() { let stdin = io::stdin(); let mut buf = String::new(); stdin.read_line(&mut buf).ok(…
C問題 1から出てる船 と Nに向かう船 を別々に配列に保存しておいて, Nに向かう船それぞれの始点について,1から出てる船の終点と一致するものがあれば “POSSIBLE",なければ"IMPOSSIBLE” D問題,E問題 DとEはセット. Dは解説放送見てEditorial読んだら解…
AtCoder の新しいウェブサイトのテストとして開催されたコンテスト. 12問 速解き. A 最大値 数列の最大値を出力 max() B 和 数列の和を出力 sum() C カンマ区切り 数列をカンマ区切りで出力 join() D ソート 数列をソートして半角スペース区切りで出力 sor…
AtCoder ABC #067 / ARC #078