2020-09-01から1ヶ月間の記事一覧

ABC091B - Two Colors Card Game

atcoder.jp カードの文字列を読み込みながら、その文字列が言われたとき何円もらえるかを計算しておく。 using System; using System.Collections.Generic; using System.Linq; namespace ABC091B { class Program { static void Main(string[] args) { var …

ABC088D - Grid Repainting

atcoder.jp 幅優先探索でスタート地点からの距離を測ってみた。ゴール地点の距離が判明していたら到達可能と判断できる。 ゴール地点の距離 + 1 が必須の白いマスで、それ以外の白いマスは黒に塗りつぶせる。あらかじめ白いマスの数を数えておき、ゴール地点…

もーもーらんど

週末、家族で油山にある「もーもーらんど」に行ってきた。子どもは既に二度ほど行ったことがあるが、自分が行くのは初めて。 www.mo-mo-land.com 着いたのは 11 時前。すでに駐車場の空きは残り僅かだった。日曜日とはいえ、もーもーらんどは福岡市の中でも…

ABC007C - 幅優先探索

atcoder.jp キューを使って幅優先探索を実装した。探索でスタート地点からの距離を記録していき、探索し終わったらゴール地点までの距離を出力。 using System; using System.Collections.Generic; using System.Linq; namespace ABC007C { class Program { …

ARC037B - バウムテスト

atcoder.jp 頂点の数 N は 100 以下なので、深さ優先探索を行った場合の深さは最大でもたかだか 100。今回は趣向を変えて、再帰で深さ優先探索を実装してみた。スタック使うよりすんなり書けたので、今後も使えそうな問題があれば使っていきたい。 using Sys…

渡くんの××が崩壊寸前(9)

渡くんの優しさは一番の長所だけど、その優しさが誰にでも向けられるのが、彼女である石原さんを不安にさせている。でも、そんな渡くんだから石原さんは好きになったというジレンマ。 親の教育の賜物か、中学時代の影響か、石原さんは見事に重たいヒロインに…

難しいことはわかりませんが、お金の増やし方を教えてください!

読書メモ。 貯金から当面の生活費を除いた残りを、安全資産とリスク資産に分ける 安全資産は絶対減って欲しく無いやつ リスク資産は平均年5%増えるかもしれないけど、最悪1年1/3減るかもしれないのを許容できる額で 安全資産は個人向け国債変動10年型を買う…

ARC031B - 埋め立て

atcoder.jp 埋め立て候補の海をスタート地点にした、スタックを使った深さ優先探索。探索終了してスタート地点に戻ったとき、全ての陸地を訪れていれば1つの島にできる。 using System; using System.Collections.Generic; namespace ARC031B { class Progra…

ATC001A - 深さ優先探索

atcoder.jp スタックを使って深さ優先探索を実装。深い=sから遠い。次に調べる区画をスタックにプッシュしていき、調べ終わったらポップして前の区画に戻る、の繰り返し。 using System; using System.Collections.Generic; namespace ATC001A { class Prog…

ABC002D - 派閥

atcoder.jp N 人の議員がそれぞれ派閥に参加するかどうかのパターンは 2N なので、ビット全探索を使ってみた。仮の派閥を作っておいて、全員がお互いに知り合いかどうかを調べる。 using System; using System.Collections.Generic; using System.Linq; usin…

ARC029A - 高橋君とお肉

atcoder.jp 焼く時間が長い順にソートしてから、2台の肉焼き機に振り分けた。 using System; using System.Linq; namespace ARC029A { class Program { static void Main(string[] args) { var N = int.Parse(Console.ReadLine()); var t = new int[N]; for …

インベスターZ(1)〜(21)

だいぶ前に Kindle で凄く安くなっていて、まとめ買いしたはいいものの、積読してしまっていたのをようやくを消化。「ぜんぜんわからない。俺たちは雰囲気で株をやっている」のセリフが有名になってしまった本作だけど、実際はそんなセリフ登場しない。投資…

ABC104C - All Green

atcoder.jp 1 〜 D の各難易度の問題を 1 問でも解くかどうかの組み合わせは 2D 通り、と考えられなくもないので、ビット全探索を使ってみた。 using System; namespace ABC104C { class Program { static void Main(string[] args) { var DG = Console.Read…

ARC061C - たくさんの数式

atcoder.jp 入力文字列 S の長さを N として、文字と文字の間に '+' が入るまたは入らないパターンは全部で 2N-1 通り。2N 通りの全探索で有効なビット全探索を使ってみた。 using System; using System.Collections.Generic; namespace ARC061C { class Pro…

ARC004A - 2点間距離の最大値

atcoder.jp 単純に全探索すれば良い。座標の格納には System.Numerics.Vector2 を使った。2点間距離の計算が Vector2.Distance 一発で済んで楽。 using System; using System.Numerics; namespace ARC004A { class Program { static void Main(string[] args…

ABC051B - Sum of Three Integers

atcoder.jp ABC085C - Otoshidama の類似問題。x と y が決まれば z も決まるので、2重ループで x と y を全探索すればいい。 using System; namespace ABC051B { class Program { static void Main(string[] args) { var input = Console.ReadLine().Split(…

ABC079C - Train Ticket

atcoder.jp 2 * 2 * 2 = 8 通りしかないので、総当たりで OK。今回は C# らしく LINQ で。クエリ式ならネスト深くならないし、途中の計算結果を let で保持できて、これはこれで便利。 using System; using System.Linq; namespace ABC079C { class Program …

ABC098C - Attention

atcoder.jp 西側から「自分より西にいるのに西を向いている人の数」を数える。 同時に、東側から「自分より東にいるのに東を向いている人の数」も数える。 最後に、「自分より西にいるのに西を向いている人の数」と「自分より東にいるのに東を向いている人の…

ABC087C - Candies

atcoder.jp N はたかだか 100 までだし、行数もたった 2 行なので、愚直な 2 重ループによる全探索で問題なく間に合う。一見ループは 1 つだけに見えるけど、LINQ を使っているので、やっていることは 2 重ループと同じ。 using System; using System.Linq; …

ABC065B - Trained?

atcoder.jp ボタンを押したとき次に光るボタンの組を Dictionary<int, int> に詰めておき、押したボタンを Dictionary<int, int> から除いていく。 Dictionary<int, int> 中に無いボタンを押そうとしたら、それはすでに押されたボタンということになるので、ボタン2を光らせることは不可能</int,></int,></int,>…

ABC060B - Choose Integers

atcoder.jp 逆転の発想。(B * i + C) % A == 0 を満たす i が存在するかどうかを調べる。 A で割った余りは記録しておき、同じ余りが出現したら、見つからないと判断して終了。 using System; using System.Collections.Generic; namespace ABC060B { class …

ABC048B - Between a and b ...

atcoder.jp 0 〜 b の範囲内で x で割り切れる値の個数から、0 〜 a-1 の範囲内中で x で割り切れる値の個数を差し引けばいい。ただ、a が 0 のときだけ特殊で、0 は x で割り切れるため +1 する。 using System; namespace ABC048B { class Program { stati…

WEB+DB PRESS Vol.118

読んだ感想。 特集1 実践リモートワーク リモートワークになったら、今まで通りの成果を上げるのが難しそうだし、評価したりされたりするのも難しそうだ。まぁ、自分は緊急事態宣言中も出勤した社畜ですが。GMO ペパボのような、既にリモートワークの土壌が…

ABC046B - AtCoDeerくんとボール色塗り

atcoder.jp 1 番目のボールを塗る色は K 通り。2番目のボールには 1 番目と同じ色が使えないので K - 1 通り。3 番目のボールには 2 番目と同じ色が使えないので、これまた K - 1 通り。後はその繰り返しで、N 番目のボールを塗る色は K - 1 通り。 using Sy…

ABC055B - Training Camp

atcoder.jp System.Numerics.BigInteger を使えば N が最大値 100000 でも計算できるけど、時間がかかりすぎて、とても2秒以内には終わらない。 最後に剰余を計算せずとも、毎回計算しても大丈夫だった。 using System; namespace ABC055B { class Program {…

ABC070B - Two Switches

atcoder.jp スイッチを離した時間の早い方と、スイッチを押し始めた時間の遅い方の差を求めればいい。差がマイナスなら、同時に押している時間はない。 using System; namespace ABC070B { class Program { static void Main(string[] args) { var input = C…

ABC096C - Grid Repainting 2

atcoder.jp 左上から順番に探索していって、# のマスのとき「上下左右に隣接するマスのうちどれか1つでも # があるか」をチェックする。# があれば探索を続け、無ければ目標を達成できないので探索終了。 using System; using System.Collections.Generic; …

ABC075B - Minesweeper

AtCoder Beginners Selection は全部解いたので、次は AtCoder Beginner Contest の過去問を解くことにした。 atcoder.jp 左上から順に全探索しつつ、現在のマスが . だったら、接しているマスに # が何個あるかを数えて出力していく。 using System; using …

ABC086C - Traveling

atcoder.jp 次の目的地に向かって進んでいって、早く着きそうだったら周辺で時間を潰し、最終的に時間ぴったりに着けば OK。 using System; namespace ABC086C { class Program { static void Main(string[] args) { var n = int.Parse(Console.ReadLine());…