あるエンジニアのAtCoder奮闘記

東京都港区にあるアミフィアブル株式会社のエンジニアが、AtCoderで解いた問題について振り返ったりしていく会社公認のブログです。

300点

AtCoder 第二回全国統一プログラミング王決定戦予選 B - Counting of Trees (再解説) (Go)

irisruneです。前回扱った問題のアルゴリズム面についてもう少し解説したいと思います。 問題リンクと提出コードは前回記事を参照してください。 ami-atcoder.hatenablog.com 例えば以下のような入力について考えます。 6 0 1 1 2 2 3 すると、次のような木…

AtCoder 第二回全国統一プログラミング王決定戦予選 B - Counting of Trees (Go)

irisruneです。例によってコンテストには出られませんでした。 問題 atcoder.jp アルゴリズムは素直ですが、解法のイメージができるかが問われる問題だと思います。 package main import ( "bufio" "fmt" "os" "strconv" ) var sc *bufio.Scanner func nextS…

AtCoder AGC 040 A - >< (Go)

irisruneです。今週のコンテストは1完でまた水パフォでした。 問題 atcoder.jp 見かけがかなりわかりにくく、アルゴリズムが組みにくい問題だと思います。 package main import ( "bufio" "fmt" "os" "strconv" ) var sc *bufio.Scanner func nextStr() stri…

AtCoder AGC 039 A - Connection and Disconnection (Go)

irisruneです。流石に残暑も落ち着いてきた感じです。 問題 atcoder.jp 単純に見えて意外と考えることが多い問題です。 package main import ( "bufio" "fmt" "os" "strconv" "strings" ) var sc *bufio.Scanner func nextStr() string { sc.Scan() return s…

AtCoder AGC 038 A - 01 Matrix (Go)

irisruneです。やはりAGCはB問題が安定しないと手が出し辛いです。 問題 atcoder.jp いつものAGC-Aらしく数学パズル的な問題です。嘘解法ではないはずですが実行時間1978msでした。 package main import ( "bufio" "fmt" "os" "strconv" ) var sc *bufio.Sca…

AtCoder ABC140 C - Maximal Value (Go)

irisruneです。台風の影響により、今週は火・水・金の投稿となります。 問題 https://atcoder.jp/contests/abc140/tasks/abc140_c からを逆算するにはどうすればいいかという問題です。 package main import ( "bufio" "fmt" "os" "strconv" ) var sc *bufio…

AtCoder ABC125 C - GCD on Blackboard (Go)

irisruneです。先週のコンテストはC問題もD問題も難しかったので過去問(リベンジ)回です。 問題 atcoder.jp 累積GCDなるフレーズが一時トレンド入りしたりしました。累積和と微妙に扱いが異なる点に注意が必要です。 package main import ( "bufio" "fmt" …

AtCoder 第一回日本最強プログラマー学生選手権-予選- B - Kleene Inversion (Go)

irisruneです。随分Go言語にもお世話になっているので競プロ以外でも何かしら形にしてみたい気分です。 問題 atcoder.jp 制約条件に注目すると解き方が見えるかもしれません。 package main import ( "bufio" "fmt" "os" "strconv" ) var sc *bufio.Scanner …

AtCoder AGC 037 A - Dividing a String (Go)

irisruneです。ふとデザインを変えたいと思いましたが、ある程度まとまった時間を取らないと難しいですね。 問題 atcoder.jp 最多の分割を行うための方針は結構単純です。実は嘘解法と化していたことに後で気付きました。 package main import ( "bufio" "fm…

AtCoder ABC 137 C - Green Bin (Go)

irisruneです。前回のコンテストは色々あり2完で-91(1292→1201)と大変冷えました。 問題 atcoder.jp 解き方自体は発想さえできればといったところですが、言語のソート仕様によっては実装が面倒になります。 実はこの提出コードはAC時のものではありません…

AtCoder ABC 135 C - City Savers (Go)

irisruneです。ABC135参加はしましたが…D問題以降が解けずNoSub撤退をすることになりました。 問題 atcoder.jp 逆から解く必要があるように見えましたが全くそんなことはなかった問題です。 package main import ( "bufio" "fmt" "os" "strconv" ) var sc *b…

AtCoder AGC 035 A - XOR Circle ※正攻法 (Rust)

irisruneです。一応Rust第2回です。 問題 atcoder.jp 300点問題ですが、正攻法で解こうとすると考慮すべきケースを整理したり実装がやや面倒だったりと厄介な問題です。 use std::collections::HashMap; fn main() { input!{ n: usize, la: [usize; n] } let…

AtCoder ABC 133 C - Remainder Minimization 2019

irisruneです。求められるレベルが上がっている感じがあるので競プロの勉強もしたいですが、他にも勉強するべきことがあるので大変ですね。 問題 atcoder.jp うっかりするとWAを出してしまうこともあるかと思いましたが…気のせいかもしれません。実装はB問題…

AtCoder ABC 131 C - Anti-Division (Go)

irisruneです。久々にコンテストに参加した結果、5完で1242→1292とレートが伸びました。 問題 atcoder.jp 典型テクニックの寄せ集めのような問題だと思います。 なお、コンテスト本番でPythonを使う度胸はなかったので久々にGo言語で書いております。 packag…

AtCoder diverta 2019 Programming Contest 2 B - Picking Up (Python)

irisruneです。今週もコンテストは出ていませんでした、コンテスト開催日時に合わせて色々調整することも考えないといけませんね。 atcoder.jp C問題よりも難しいと感じる人もいたそうです。確かに問題文だけ見るとC問題の方が単純そうには見えました(まだC…

AtCoder ABC 129 C - Typical Stairs (Python)

irisruneです。今回不参加でしたがトラブルがあって大変だったみたいですね。 問題 atcoder.jp 当のトラブルがあった問題です。問題自体は最近珍しい気もする典型問題です。 import sys import numpy as np MOD = 1000000007 def main(): n, m = [int(x) for…

AtCoder ABC 128 C - Switches (Go)

irisruneです。今日の記事は参加しなかった方のコンテストです。 atcoder.jp ABC127とは打って変わって少々厄介な問題です。 package main import ( "bufio" "fmt" "math" "os" "strconv" ) var sc *bufio.Scanner func nextInt() int { sc.Scan() i, e := s…

AtCoder ABC 127 C - Prison (Go)

irisruneです。水パフォですが久々にレートが伸びて嬉しい気分ですね。 atcoder.jp 最近のC問題にしてはかなりシンプルな問題だと思います。 package main import ( "bufio" "fmt" "os" "strconv" ) var sc *bufio.Scanner func nextInt() int { sc.Scan() i…

AtCoder ABC 104 C - All Green を嘘解法で (Julia) (おまけ:ABC 116 D - Various Sushi をJuliaで書き直し)

irisruneです。今回もJuliaで問題を解いてみました。おまけで以前Go言語で解いた問題も解き直して実行時間など比較しています。 ABC 104 C - All Green atcoder.jp 当時2完で冷えた回ですが、今見ても300点にしては難しいと思います。なお嘘解法でゴリ押しで…

AtCoder ABC 100 C - *3 or /2 でJuliaを試してみる(Julia)

irisruneです。久々に新しい言語に挑戦してみた回です。 前置きをしておくと、今回は問題の難易度はかなり低めで言語周りの話がメインです。 なお、こちらの記事に多大な影響を受けているためこの場を借りて紹介させていただきます。 qiita.com そもそもJuli…

Tenka1 Programmer Contest 2019 C - Stones をGoで解こうとしたら罠にハマりました (Go,Kotlin)

irisruneです。最近コンテスト時間に予定が被ってて参加できないのがよくないですね。 atcoder.jp アルゴリズム面は結論から言えば累積和を使いました。それで解けるはずだったんですけどね… package main import ( "fmt" ) func minInt(a, b int) int { if …