hirohirohirohirosのブログ

地方国立大学に通う情報系学部4年

競技プログラミング

Atcoder ABC202, 201 振り返り

A - Three Dice【AC】 ある面と反対側の面を足すと7になるので,a, b, cの反対側の数は7-a, 7-b, 7-cとなるので,その和は21-1-b-cとなります. a, b, c = map(int, input().split()) print(21-a-b-c) B - 180°【AC】 決まった文字列の変換は辞書を使うと簡…

Atcoder ABC247 振り返り

E問題水diffでしたが,いけそうな雰囲気を感じたので頑張ってましたが解けませんでした……解法はほとんど合っていたので後は実装力を付けたいです. A - Move Right【AC】 左端は必ず0,その他は右端以外の文字列を結合すれば良いです. s = input() print("0…

Atcoder ABC205,203 振り返り

A - kcal【AC】 言われたとおりにやります A, B = map(int, input().split()) print(A*B/100) B - Permutation Check【AC】 123……と並び替えることが出来ないというのは,どこかで同じ値が複数あると言うことなので,同一の要素を排除するset型を使う事で判…

Atcoder ABC246 振り返り

シンプルなことに気付くのにとても時間がかかりWAを連発してしまった……前回前々回で上げたレートが…… A - Four Points【AC】 長方形なのでx,yそれぞれ同じ値が2つずつあるはずなので,たりないものを表示します. X = [] Y = [] for _ in range(3): x, y = m…

Atcoder ABC212, 210 振り返り

A - Alloy【AC】 A+B>0という制約があるため,この条件式でもAC出来ます. A, B = map(int, input().split()) if B == 0: print("Gold") elif A == 0: print("Silver") else: print("Alloy") B - Weak Password【AC】 全ての文字について条件が当てはまった…

Atcoder ABC215 振り返り

D問題で以前作成した素因数分解関数が役立ってくれました. hirohirohirohiros.hatenablog.com A - Your First Judge【AC】 言われたとおりやります. print("AC") if input() == "Hello,World!" else print("WA") B - log2(N)【AC】 1WAしてしまいました……純…

Atcoder ABC245 振り返り

A - Good morning【AC】 始めに分に変換しておくとやりやすいです. A, B, C, D = map(int, input().split()) print("Takahashi") if A*60+B <= C*60+D else print("Aoki") B - Mex【AC】 set型はin操作がO(1)で出来ます. N = int(input()) A = set([int(i)…

Atcoder ABC216 振り返り

Dは解説ACして2通りの解法で解きました.特に二つ目は,DAG,トポロジカルソートと新しい事を学べたので良かったです. A - Signed Difficulty【AC】 今までa bなどの標準入力は,脳死でinput().split( )と受け取ってましたが,これはinput()で"a b"という文…

Atcoder ABC244 振り返り

A - Last Letter【AC】 言われたとおりにやります. N= input() print(input()[-1]) B - Go Straight and Turn Right【AC】 N N = input() T = input() step = [(1, 0), (0, -1), (-1, 0), (0, 1)] now = 0 pos = [0, 0] for t in T: if t == "S": pos[0] +=…

Atcoder ABC218, 217 振り返り

順序付き集合の問題に当たりました.C++にはあるけどPythonには無い機能でどうするか色々あるデータ構造のようです.今回はとある記事様https://qiita.com/tatyam/items/492c70ac4c955c055602のコードを使わせて頂きました.こういうときにすぐ対応出来るよ…

Atcoder ABC221, 220 振り返り

A - Seismic magnitude scales【AC】 そのまま実装します. a, b = map(int, input().split()) print(32**(a-b)) B - typo【AC】 a, b = b, aと書くことで簡単に値を入れ替えることができます. S = list(input()) T = list(input()) if S == T: print("Yes"…

Atcoder ABC243 振り返り

約8ヶ月ぶりの緑パフォが出ました.レートが+30以上上がったのもその時ぶり……これを続けて入緑できるよう頑張ります. A - Shampoo【AC】 V V, A, B, C = map(int, input().split()) x = [A, B, C] f = ["F", "M", "T"] count = 0 while V >= 0: V -= x[cou…

Atcoder ABC225,224,223 振り返り

A - Distinct Strings【AC】 S=3と決まっているのでそれぞれで場合分けすれば良いです.S=Nと固定されていなくても,同じ文字の個数がx個y個z個...あったら,で求められます. a = set(input()) if len(a) == 1: print(1) elif len(a) == 2: print(3) else: …

Atcoder ABC227,226 振り返り

バーチャルで参加しました.227は複雑なこと色々考えたけど結局解けずに答え見ると非常にシンプルな解法という一番辛いパターンでした.対して226は227Cとほぼ同じdiffの226Dがあっさり解けました(227を本番で解いてたら1700位と過去最高順位だった……). A -…

Atcoder ABC242 振り返り

modは各演算ごとに行う. 最後にまとめてmodを取ろうとしたせいで,値が途中でおそらく64bitを超え,遅くなりTLEしてしまった.各演算ごとにmodを取るだけでAC出来る事に35分後に気付き800位近く順位を落としてしまった…… A - T-shirt【AC】 A>=Xなら確定で…

Atcoder ABC228 振り返り

バーチャルで参加しました(175位).D問題がUnion Findで解けるとは思いもしませんでした.しかも以前実装した形では解くことが出来ず少し書き換える必要がありました.既存のライブラリに手を加えて解く応用力も必要だなと感じさせられました. A - On and O…

Atcoder ABC229 振り返り

バーチャルで参加しました.(207位)尺取り法というアルゴリズムを初めて知りました.また,実装してから初めてUnion Findを使う問題に当たりました.解説でUnion Findを使うとだけ読んでから自力でAC出来たのは良かった点です.自力でUnion Findを使うと考え…

Atcoder ABC230 振り返り

バーチャルで参加しました(224位).緑diffのDを解けたので良かったです.ただ後で他人のコードを見ると自分のコードがぐちゃぐちゃだと感じるので更なる精進が必要です. A - AtCoder Quiz 3【AC】 pythonはfstringで0埋めをしてくれる機能があります. N = …

Atcoder ABC241 振り返り

Cがぱっと見難しそうでDがいけそうだったのでずっとDを解いていた.結局Dが解けずに2完.しかし,コンテスト終了後,+3WAの+20分くらいでCが解けたのでDにこだわらずCを解いておけば良かった…….Dは未知のアルゴリズムを理解する必要があったので後日しっ…

Atcoder ABC231 振り返り

バーチャルで参加しました(221位).Union Findはいつかちゃんと実装しないとなと思っていたので今回これを使う問題が出てきて良かったです. A - Water Pressure【AC】 言われたことをそのまま実装するだけです. D = int(input()) print(D/100) B - Electio…

Atcoder ABC239,240 振り返り

土日連続でABCが開催された19,20日.あいにくこの二日間ちょうどインターンと重なってしまったのでRated参加できずバーチャルで参加しました.(239:87位, 240:82位) A - Horizon【AC】 そのまま実装します. x = int(input()) print((x*(12800000+x))**(0.5…

Atcoder ABC232 振り返り

バーチャルで参加しました(196位).Cに手こずりましたが,滅多に使わない隣接行列を使うと簡単だと気付いたらすぐに解けました. A - QQ solver【AC】 pythonは文字列と数字の変換が簡単で助かる. s = input() print(int(s[0])*int(s[2])) B - Caesar Cip…

Atcoder ABC235 振り返り

バーチャルで参加しました.Dが結局解説を見ないと解けませんでしたがアルゴリズムの根幹は時間内に出来ていたので成長しているとします. A - Rotate【AC】 Pythonは文字列の数字とint型の数字を簡単に変換出来るのですぐ実装可能です. a = input() print(…

Atcoder ABC236 振り返り

バーチャルで参加しました. A - chukodai【AC】 文字列をlist関数に入れると一文字ずつ要素になったリストが返ってきます.また,a,b = b,aとすると簡単に値を入れ替えることができます. S = list(input()) a, b = map(int, input().split()) S[a-1], S[b-…

Atcoder ABC238 振り返り

Bがぱっと見解けなさそうだったので先にCDを取り組んだ.Cは30分で解けたがDが解けそうで解けずに結局2完となった.BCD全体的に難しい……難しくない……? A - Exponential or Quadratic【AC】 Pythonならそのまま書けばいい. N = int(input()) if 2**N > N**2…

Atcoder ABC237 振り返り

期末レポートやらが重なって最近できていなかったので久しぶりのABC.今回も当日は参加出来なかったのでバーチャル参加しました. A - Not Overflow【AC】 問題文で言われたとおりのことをコードに翻訳する. n = int(input()) if -2**31 <= n < 2**31: prin…

Atcoder ABC233 振り返り

優先度付きキューというデータ構造を完全に忘れていた.ただ今まで優先度付きキューが必要な問題に当たった記憶も無いので圧倒的精進不足故の結果と言える. A - Weird Function【AC】 f(x) = x**2 + 2x + 3を関数として作れば後は問題文の通りに書くだけ. …

Atcoder ABC233 振り返り

最近はデータ分析コンペに注力しててABCはやってなかったけど久しぶりに参加.diff1000未満の問題コツコツやって緑は行きたい. A - 10yen Stamp 【AC】 既に一枚貼られてるX円切手がY円を超えていたら一枚もある必要が無い.そうで無かった場合足りないY-X…