u++の備忘録

競プロ

Google Code Jam 2021 Qualification Round 参加録

「Google Code Jam 2021」の Qualification Round に参加しました。「Code Jam」は、Googleが主催する世界的なコーディングコンテストで、Qualification Round は最初の予選です。今年は日本時間の3月26日22時〜28日午前4時にわたり開催され、出題5問から合…

AtCoder「日立製作所 社会システム事業部 プログラミングコンテスト2020」をPythonで解く

久しぶりにAtCoderのコンテストに参加しました。A, B問題の2完でした。 atcoder.jp A - Hitachi String(100点) 「Sの長さは1以上10以下」なので、hitachi文字列は高々5通りです S = input() hitachi = [ 'hi', 'hihi', 'hihihi', 'hihihihi', 'hihihihihi'…

「第二回全国統一プログラミング王決定戦予選」参加録

「第二回全国統一プログラミング王決定戦予選」に参加してA, Bの2完でした。約7カ月ぶりのRated参加だったこともあり、「あまりを計算し忘れる」という初歩的な見落としで爆死しました。。。atcoder.jp A - Sum of Two Integers(100点) 偶数と奇数で場合分…

AtCoder Beginner Contest 127をPythonで解く

AtCoder Beginner Contest 127をPythonで解きました(A〜D)。atcoder.jp A - Ferris Wheel(100点) 丁寧に条件分岐 A, B = list(map(int, input().split())) if (A <= 5): print(0) elif (A >= 13): print(B) else: print(B//2) B - Algae(200点) 漸化式…

AtCoder Beginner Contest 126をPythonで解く

AtCoder Beginner Contest 126をPythonで解きました(A〜E)。atcoder.jp A - Changing a Character(100点) いろんなやり方はあると思うが、計算量も余裕があるので愚直に マッピング用のdictを用意し、K番目のときだけ適用する N, K = list(map(int, inpu…

「diverta 2019 Programming Contest」をPythonで解く

A〜Dまで解きました。atcoder.jp A - Consecutive Integers(100点) サンプルなど、実際に具体的な数字で考えると良い N, K = list(map(int, input().split())) print(N - K + 1) B - RGB Boxes(200点) r, gを固定したときにbが答えとなり得るか(割り切…

AtCoder Beginner Contest 125をPythonで解く

atcoder.jp A - Biscuit Generator(100点) Tまでに何回ビスケットが生産されるか考える 0.5は無視で良い A, B, T = list(map(int, input().split())) ans = T//A * B print(ans) B - Resale(200点) それぞれの宝石の「価値-コスト」を考え、正の宝石の値…

Tenka1 Programmer Beginner Contest 2019をPythonで解く

atcoder.jp A - On the Way(100点) 必ずしもA A = list(map(int, input().split())) if (A[0] < A[2] < A[1]) or (A[1] < A[2] < A[0]): print("Yes") else: print("No") B - *e**** ********e* *e****e* ****e**(200点) 問題文の通りに実装 N = int(inp…

AtCoder Beginner Contest 124をPythonで解く

予定があったので、リアルタイムでは参加できませんでした。atcoder.jp A - Buttons(100点) AとBを1回ずつ取る場合は、A==Bのときのみ それ以外は同じのを連続で取る A, B = list(map(int, input().split())) if (A == B): print(A + B) else: print(max(A…

AtCoder Beginner Contest 123をPythonで解く

「AtCoder Beginner Contest 123」を解きました(リアルタイムでは参加できませんでした)。atcoder.jp A - Five Antennas(100点) 一番大きい座標と小さい座標の差がKより大きいかで条件分岐 最初問題文のa~eの不等号を見落としていたので無駄にmax, minを…

Kaggle入門記事をQiitaに書きました

先日「Kaggleに登録したら次にやること ~ これだけやれば十分闘える!Titanicの先へ行く入門 10 Kernel ~」という記事の初版を公開しました。qiita.com初めてQiitaに記事を書いたのですが、ありがたいことにTwitter含め大きな反響を頂きました。新年度に心…

「累積和を何も考えずに書けるようにする!」をPythonで解く

「累積和を何も考えずに書けるようにする!」という記事に記載されていた計5問をPythonで解きました。Pythonだと、itertools.accumulateを利用することで1次元累積和が簡単に記述できます。最近話題の「累積和」について色々書いてみました!!!累積和は、…

AtCoder「エクサウィザーズ 2019」をPythonで解く

AtCoder「エクサウィザーズ 2019」に出て、2完でした。atcoder.jpABCのA, B問題を全て埋めていた甲斐があり、3分で2完できました。C問題はTLEが取れませんでした。昼休みに2問解いて、ABCのA, B埋め完了〜C, Dも仕上げていくぞ pic.twitter.com/KNsTUJsJ7a— …

「典型的な DP (動的計画法) のパターンを整理 Part 1 ~ ナップサック DP 編 ~ 」をPythonで解く

2月下旬に「典型的な DP (動的計画法) のパターンを整理 Part 1 ~ ナップサック DP 編 ~ 」の前半7問をPythonで解きました。ABCのD問題で時折出題されるDPの感覚をザックリと掴むことができました。qiita.com 1 ナップサック DP とは 問題 1: 最大和問題 2…

AtCoder Beginner Contest 122をPythonで解く

「AtCoder Beginner Contest 122」に出て、全完でした。A問題で誤読して2WAして号泣スタートでしたが、最後が精進していたDP問題だったので何とか取り戻せた形です。atcoder.jp A - Double Helix(100点) 4通りの場合分け 対応を空目して2WAしたので、明日…

AtCoder Grand Contest 031 AをPythonで解く

「AtCoder Grand Contest 031」に出て、1完でした。atcoder.jp A - Colorful Subsequence(200点) 総当たりで解くとTLE アルファベットを1文字ずつ数え上げて計算する N = int(input()) S = input() M = 10**9 + 7 cnt = [0] * 26 for i in range(N): cnt[o…

AtCoder Beginner Contest 121をPythonで解く

「AtCoder Beginner Contest 121」に出て、3完でした。atcoder.jpC問題まで順調に解けたのですが、D問題でTLEした後、O(1)の解法が分かりませんでした。 A - White Cells(100点) h個の行とw個の列をそれぞれ一番端まで動かしても答えは変わらない H, W = l…

ABC015「C - 高橋くんのバグ探し」をPythonで解く

ABC014「C - 高橋くんのバグ探し」をPythonで解いた。atcoder.jp愚直に全通りをfor文で回す解答もあるが、競技プログラミングをPythonで解く上で、より汎用的な解法に落とし込めたので、まとめておく。 解答 import itertools from functools import reduce …

AtCoder Beginner Contest 120をPythonで解く

atcoder.jp A - Favorite Sound(100点) 満足する回数Cを無視すると、答えは(B//A) この数よりCが小さければ、答えはC A, B, C = list(map(int, input().split())) ans = min((B//A), C) print(ans) B - K-th Common Divisor(200点) K番目に「大きい」こ…

AtCoder Beginner Contest 119をPythonで解く

「AtCoder Beginner Contest 119」に出て、3完でした。atcoder.jpC問題の実装に苦しみ、時間をほぼ使ってクソコードで通しました。 A - Still TBD(100点) 文字列の比較 S = input() if S <= "2019/04/30": print("Heisei") else: print("TBD") B - Digital…

「全国統一プログラミング王決定戦」イベント&懇親会に参加しました

本日開催された「全国統一プログラミング王決定戦」イベント&懇親会に参加しました。atcoder.jp↓で出場した予選の201-500位の枠(イベント&懇親会のみ参加可能)です。upura.hatenablog.com会場は東京ドームホテル 大宴会場「天空」というとても豪勢な場所…

ABC014「B - 価格の合計」をPythonで解く

ABC014「B - 価格の合計」をPythonで解いた。atcoder.jp 解法 AtCoder Beginner Contest 014 解説 from AtCoder Inc. 解答 N, X = list(map(int, input().split())) a = list(map(int, input().split())) ans = 0 for i in range(N): if (X>>i)&1 == 1: ans …

AtCoder Beginner Contest 118をPythonで解く

「AtCoder Beginner Contest 118」に出て、3完でした。atcoder.jpCは実装に確証が持てておらず、かつコードも汚いので解説などで勉強します。Dは方針が立ちそうでしたが「ちょうどN本のマッチ棒を使って」という条件で分からなくなりました。 A - B +/- A(1…

AtCoder「みんなのプロコン2019」をPythonで解く

「みんなのプロコン2019」に出て、3完でした。atcoder.jpC問題のテストケースが一つだけWAになる理由が分からず、1時間以上を浪費しました。レートが下がって悲しいです。 A - Anti-Adjacency(100点) 偶数・奇数で場合分け "Yes"ではないことに注意する N,…

AtCoder「全国統一プログラミング王決定戦予選」をPythonで解く

atcoder.jpC問題まで普通に解ける問題だったのに、妙な力みから些細なミスでWAを連発しました。猛省せねばです・・・。 A - Subscribers(100点) 最大値は、片方が片方を包含した場合なので、AとBの小さい方 最小値は、両者を完全に分離した場合なので0か、…

「競プロ忘年会 in 東京 2018」のメモと感想 #kyopro

競技プログラミングの勉強&モチベーション・アップのため、「競プロ忘年会 in 東京 2018」に参加してきました。kyopro.connpass.com 「unit propagationと最大流と分枝限定法」@wata_orz 「アメリカ大学院留学で後悔していること: 競技プログラミング編」@k…

AtCoderのレートが1000になりました

昨日のABC113に参加し、A〜Cの3完でレートが1018になりました。 https://beta.atcoder.jp/users/upura競技プログラミングを始めた当初、記事では明示していませんでしたがレート1000が一つの目標だったので、ひとまず嬉しいです。upura.hatenablog.com本記事…

競技プログラミングを始めた&ABC104

競技プログラミングを始めました。「AIが〜」というオジサンではなく、きちんと自分の手を動かせる人間でありたいという気持ちです。 やったこと 環境構築 C++ Visual Studio Code 下記サイトを参考にしました。 VSCodeで始める競技プログラミング(環境構築…