Codeforces

141B - Hopscotch

出展 Codeforces Round #101 Div. 2 - B 概要 規則的に平面上に並べられたタイルに1から順番に番号が振られている。 このとき(x, y)はどのタイルの真に内部にあるか(あるいはどのタイルの内部にもないか)答える。 正しく場合分けすれば解ける。 ソース https…

141A - Amusing Joke

出展 Codeforces Round #101 Div. 2 - A 概要 文字列aとbをつなげて並び替えたものにcがなっているかどうかを調べる ソートして比較すればいい ソース https://github.com/mkut/cf/tree/master/100-199/101/141A/haskell.hs

140A - New Year Table

出展 Codeforces Round #100 - A 概要 半径Rの円に内接して半径rの円をn個並べられるか調べる 1つ並べるのに必要な角度を2*piで割った 誤差は角度に1-1e-8を掛けたら通った ソース https://github.com/mkut/cf/tree/master/100-199/100/140A/haskell.hs

139B - Wallpaper

出展 Codeforces Beta Round #99 - Div. 2 B 概要 各部屋にはる壁紙のコストを最小化する 壁紙は向き固定で、横には分割できない 同じ部屋は同じ壁紙 部屋ごとに独立なので最小値の合計を求めればよい ソース https://github.com/mkut/cf/tree/master/01-99/…

139A - Petr and Book

出展 Codeforces Beta Round #99 - Div. 2 A 概要 どの曜日に何頁読むかを与えられる nページの本を毎週このペースで月曜日に読み始めると、いつ読み終わるか nがあまりにも小さいので、実際にシミュレーションした ソース https://github.com/mkut/cf/tree/…

16C. Monitor

概要 縦横がa,b以下で比がx:yになる最大のサイズを求める 比はgcdをとってそれぞれの何倍まで取れるかを計算し、小さい方を採用する ソース https://github.com/mkut/cf/tree/master/01-99/16/16C/haskell.hs 出展 Round #16 Div.2 C

138B. Digits Permutations

概要 数字列nを並び替えてx, yを作ったとき、 x+yの下位にできるだけたくさん0が並ぶようなx, yを求める 初め条件を「n まず各桁が何個あるかを数える 10になるペアを全探索、探索自体は9になるペア→0になるペア(最後につける)→残りの順にgreedy ソース http…

138A. Literature Lesson

概要 後ろからk文字目の母音以降でどんな韻を踏んでいるか判断する 4単語周期で、すべての周期で同じ韻と考える 韻の種類は aaaa / aabb / abab / abba どれでも無い場合はNO 本番はk文字目以降の母音だけ考えていて落ちる ソース https://github.com/mkut/c…

121A. Lucky Sum

概要 sum { nextLucky(x) | x 範囲が広いので、nextLuckyが同じところは掛け算でまとめる ソース https://github.com/mkut/cf/tree/master/01-99/91/121A/haskell.hs 出展 Round #91 Div.1 A Round #91 Div.2 C

122B. Lucky Substring

概要 部分文字列の中でもっとも多く出現するlucky numberを求める 同じ数なら辞書順最小のものを選ぶ 無いときは-1 "4"か"7"かしかありえないのでそれを数えるだけ ソース なぜか"47"と"74"も考慮してしまった コーナーケースの処理を適当にやったので分かり…

122A. Lucky Division

概要 lucky number で割りきれるかどうか ソース https://github.com/mkut/cf/tree/master/01-99/91/122A/haskell.hs 出展 Round #91 Div.2 A

96A. Football

概要 7個以上連続している0か1があるかどうか ソース https://github.com/mkut/cf/tree/master/01-99/77/96A/haskell.hs 出展 Round #77 Div.2 A

135B. Rectangle and Square

概要 2次元平面上の8点を4つずつに分けて、それぞれを正方形、長方形の頂点にできるかどうか できるならその分け方を答える 8C4通り試す 実行結果を見る限り、両方正方形の場合はどの順で答えてもOK ソース https://github.com/mkut/cf/tree/master/01-99/97…

135A. Replacement

概要 数列の値を1つ変えてソートすることで辞書順最小の数列を作る 一番大きい値を1にすればいいが、絶対に値を変更しなければならないので 全部1の時だけ最後が2になる ソース https://github.com/mkut/cf/tree/master/01-99/97/135A/haskell.hs 出展 Round…

110A. Nearly Lucky Number

概要 lucky digitの数がluckyかどうかを判定する ソース https://github.com/mkut/cf/tree/master/01-99/84/110A/haskell.hs 出展 Round #84 Div.2 A

137D. Palindromes

概要 文字列をk個以下の回文に分割するのに必要な最小の文字の書き換えを求める 分からなかったのでEditorialを読んだ まずi文字目からj文字目を回文にするコストcnt[i][j]を計算する 初めからi文字をj個に分けた時のコストz[i][j]は z[i][j] = min { z[k][j…

137C. History

概要 区間の包含関係で半順序を作ったとき、極大でない要素の数を求める 境界は気にしなくてよい 片方でソートして順番に極大かどうかを判定する foldlで普通に書くとTLEしたので、foldl'で正格評価した ついでに入力もByteStringにした(多分いらないと思う)…

137B. Permutation

概要 数列が与えられて、[1..n]の並べ替えに変えるのに必要な数の変更回数を求める [1..n]の範囲の数が何個あるか数えればよい 変更は+1か-1しか出来ないものだと思って少しハマった 範囲内だけユニークして数えるのが早かったか… ソース https://github.com…

137A. Postcards and photos

概要 連続している数を5で割って切り上げた数の合計を答える ソース https://github.com/mkut/cf/tree/master/01-99/98/137A/haskell.hs 出展 Round #98 Div.2 A

136B. Ternary Logic

概要 3進数の各桁を辻褄合わせていく 最小のものとあるけど一つしかない? ソース https://github.com/mkut/cf/tree/master/01-99/97/136B/haskell.hs 出展 Round #97 Div.2 B

136A. Presents

概要 配列のインデックスを逆引きする サイズが小さいのでArrayを使うまでもなく、(多分)O(n^2)解法でいい ソース https://github.com/mkut/cf/tree/master/01-99/97/136A/haskell.hs 出展 Round #97 Div.2 A

133B. Unary

概要 一文字ずつエンコードして余りをとるだけ ソース https://github.com/mkut/cf/tree/master/01-99/96/133B/haskell.hs 出展 Round #96 Div.2 B