服を着たゾウに花束を

勉強の記録とか。

2020-06-01から1ヶ月間の記事一覧

AtCoder Beginner Contest 168 振り返り

D - .. (Double Dots) N本の部屋,M本の通路を持つ洞窟 洞窟内の各部屋から外に出るための最短ルートを進む際,次に向かうべき部屋を出力 達成できない部屋がある場合は"No"を出力 graph = [ for _ in range(N+1)] for a,b in zip(*[iter(AB)] * 2): graph[a…

セルフお悩み相談コーナー① ~年齢と能力編~

大して成長していないのに周囲に指摘されなくなっていくのがつらい。 子供のころは周囲がああしろ,こうしろとうるさかった。失敗したらこってり絞られた。今思えば期待の裏返しであったと思う。 今はというと,失敗してもどうにも甘い。「まあしょうがない…

AtCoder Beginner Contest 167 振り返り

C - Skill Up N冊の本でM個のスキルをX以上にするための最小コストを求めたい 実装:深さ優先探索 def func(cost,a,i): if min(a) >= X: return cost elif i == N: return MAX total_A = [x+y for (x,y) in zip(a,A[i])] return min(func(cost + C[i],total_…

AtCoder Beginner Contest 171 振り返り

F - Strivore 「好きな英小文字 11 文字を好きな位置に挿入する」という操作を文字列 SS にちょうど KK 回繰り返してできる文字列は何通りあるでしょう? 答えは非常に大きくなる可能性があるので、(109+7)(109+7) で割ったあまりを出力してください。 KK は…

AtCoder Beginner Contest 170 振り返り

D - Not Divisible 数列の中で,他の数に割られない数の個数を求める 全探索だとTLE ・解法 サイズ Amax の 配列 dpを作成,0で初期化 dp[Ai] = 0 の時,dp[Ai] += 1 Aiより大きいAiの倍数yについて,dp[y] = 2 にする これによりdp[Ai] == 1である数は一回…

AtCoder Beginner Contest 166 振り返り

E - This Message Will Self-Destruct in 5s 単純に全探索するとTLE j - i = Ai + Aj i + Ai = j - Ai Li = i + Ai, Ri = i - Ai とおくと,Li = Rj が求める条件 Li, Ri がそれぞれが取り得る値すべてを計算し,連想配列を使って一致するものを見つける 具…

AtCoder Beginner Contest 165 振り返り

C - Many Requirements A = {1,3,4} のとき A3 - A1 = 4- 1 = 3 = c1 O 100点入る A2 - A1 = 3- 1 = 2 = c1 O 10点入る A3 - A2 = 4- 3 = 1 ≠ c1 × 10点入る 計110点 解き方:条件を満たす数列を全探索 Ai = i 番目の仕切りより左側に存在するボールの数 + 1…