第一回日本最強プログラマー学生選手権-予選- B – Kleene Inversion をPython3で解く

Share

AtCoder上にある問題のうち、AtCoder Problemsでdiff 800以上と判定されているものを順番に解いていく企画。
基本的な考え方は全てコード中のコメントに入れてあるので、参照のこと。

出典:
第一回日本最強プログラマー学生選手権-予選- B – Kleene Inversion

“第一回日本最強プログラマー学生選手権-予選- B – Kleene Inversion をPython3で解く” の続きを読む
Share

Python3でエラトステネスの篩を用いて素数列を作成する

Share

最近LINEの新卒採用試験ズバリ問題解説~アルゴリズム問題編~という記事が少し話題になっていた(というか競技プログラミング勢から突っ込まれしまい、後日お詫びが掲載された)のを見かけたので、そこで取り扱われていたエラトステネスの篩(ふるい)について、記事を書いてみようと思う。

“Python3でエラトステネスの篩を用いて素数列を作成する” の続きを読む
Share

Python3での内包表記あれこれ

Share

内包表記(Comprehension)とは、あるリスト(などのイテラブル)から別のリスト(あるいはセットや辞書)を作成するような処理を行うときに、それを簡便に書くことができる記法だ。ちなみに、内包表記で書くと、普通に書き下すより動作も速くなることが多い。

今回の記事は、内包表記って何?という人から、内包表記の存在は知っているけど書き方がイマイチよく分からない……という人向けとなっている。

“Python3での内包表記あれこれ” の続きを読む
Share

競技プログラミングにおける、標準入力の取得例 in Python3

Share

問題を解く以前に、入力をどう取り扱ったらいいかイマイチ良く分からない、あるいは入力を取得するコードを書くところで悩んで時間を食ってしまう……という人向けの記事。

慣れれば誰でも簡単に書けるようになるので、一応それらしいパターンをまとめつつ、どうしてこういう書き方になるのか、ちょっとした解説をつけてみようと思う。

“競技プログラミングにおける、標準入力の取得例 in Python3” の続きを読む
Share

Union_Find (Disjoint Set Union) クラス in Python3

Share

とりあえずそこそこ形になったので、コードを。一応実コンテストでも使用してるので、そんなに間違いはないはず……。

2020/11/09 適当な拡張クラスを追加。グリッドのつながりをUnion Findで扱いたい時などに使えるかもしれない。

2021/11/28 コードのリンク切れ修正。見に来てくれてたけどコードが見えてなかった人、ごめんなさい。

“Union_Find (Disjoint Set Union) クラス in Python3” の続きを読む
Share