Python

bit全探索

bit全探索について学びます。 bit全探索とは 探索をbitを用いて行うことです。 あるN個のものから、選択する・しないを0か1で表すことで、全てのパターンを列挙することができます。 例えば、N=4のとき、24=16パターンの列挙に、0000〜1111の2進数を用います…

ABC168 復習

D問題まで解けました! 幅優先探索の典型的なパターンだったので、勉強した甲斐がありました。 と、いうわけで復習です。 atcoder.jp A - ∴ (Therefore) ポイントは2つ、 文字列の末尾を取得する 取得した文字列によって挙動を変える(ifが書ける) いつもの…

ABC166 復習

D問題の壁高すぎますねぇ・・。 (今回のも数学ゲーか?) C問題までは20分ほどで解けたのでよかったのですが。 atcoder.jp A - A?C if-elseが書ければなんとかなります。 与えられた文字列SがABCか、ARCかで出力する文字列を変化させればよいだけです。 if …

ABC164 復習

今回もC問題までしか解けませんでした。 というわけで、復習です。 問題は以下。 atcoder.jp A問題 Sheep and Wolves 問題概要は、2つの値を比較した結果を出力すること。 以下、私の回答です。 S, W = map(int, input().split()) if S <= W: print('unsafe'…

ABC163 復習

unratedになってしまったのは残念でしたね。 とはいえ、「解く」ことは大事なので、やってみました。 今回はCまですんなり解けました。 A問題 円周の長さを求める問題でした。 円周の長さを求める公式(直径×π)と、小数の扱いに気を付ければ解けますね。 py…

ABC161 復習

atcoder.jp A問題 変数のスワップができれば解けますね。 こういう時、Pythonは便利ですよね。 x, y, z = map(int, input().split()) x, y = y, x x, z = z, x print(str(x) + ' ' + str(y) + ' ' + str(z)) B問題 問題文にあるものをそのまま記載すればいい…

ABC160 復習

A問題 文字列操作の初歩的な部分について問うてる問題ですね。 N文字目へのアクセスを知っていれば何とかなります。 #3文字目と4文字目の比較 s[2] == s[3] B問題 四則演算をプログラムできれば解けます。 ans = 0 ans += (x // 500) * 1000 ans += (x % 500…

ABC159 復習

復習です。 A問題 ハマりました。 2つ選んで偶数になるのは、偶数・偶数か、奇数・奇数の組み合わせしかないので、N、Mそれぞれについて組み合わせを調べればヨシ。 pythonでは、itertoolsを使用すると解きやすいです。 import itertools #例えば、10個のも…