きなこの精進日記[python]

Entries from 2020-07-01 to 1 month

ABC124 D - Handstand 解説[python]

概要 長さN のbit列があり、任意の区間に対して区間内のbitを反転させるという操作をK 回以内行うことができる。 最良の操作を行った時、1が連続した長さの最大値を求めよ。 制約 N K 考察 bit列の区間の操作の問題は他でもみる気がする(コドフォで頻出?…

コドフォ Educational Contest 92 E Calendar Ambiguity 解説[python]

概要 全ての月がd 日であり、一年にm 日ある暦がある。 1週がw 日とすると、同じ年のx月y 日の曜日がy日x日の曜日と等しいようなx,y のpair( xはyより小さい )が何個あるかを数えよ。 制約 1 考察 x月y日は年始から数えて(x-1)*d + y日目なので、((x-1)*d + …

コドフォ Educational Contest 92 B Array Walk 解説[python]

概要 正の整数列aが左から順番に並んでおり、現在先頭の要素に存在する。各stepで現在の位置から左右の要素に移動することができ、移動した場所の要素の値だけ得点が入る。 動き方の制約として、連続して左の要素にいくことはできない、左にいくのは最大でz …

コドフォ Educational Contest 92 C Good String 解説[python]

概要 長さN の数字のみからなる文字列がある。文字列を左回転、右回転した文字列が一致する時それは良い文字列とする時、与えられた文字列から最小で何文字削除すれば良い文字列になるかを求めよ。ただし削除する場所は任意 考察 実験すると、長さが奇数なら…

コドフォ Educational Contest 92 D Segment Intersections 解説[python]

概要 区間[l1,r1],[l2,r2] のがそれぞれN 本ある。 i 番目の[l1,r1]区間はi 番目の[l2,r2]区間と対応する。任意の区間の距離を長さ1伸ばすのにstepが1かかる。(左右両方向に伸ばせる) それぞれの対応する区間同士が重なっている長さの合計をk以上にするの…

Timber [Facebook Hacer Cup Qualication Round, Problem C]

問題: www.facebook.com 概要 数直線上にN 本の木、場所Pi,高さはHi の木が立っている。数直線上にそって任意の木をそれぞれ左右どちらかに倒すことができる。 操作後にに端点が同じ位置である木同士は1つの木とまとめることができる。 伐採後の木の長さで…

ARC050 B 花束

概要 今 r 本の赤い花とb 本の青い花がある。 赤い花と青い花は(1,x), (y,1)のどちらかの個数の組みでしか買うことはできない時、最大で何セット買うことができるか? 考察 2つの操作の共通項を考えると、一回の操作で両方とも少ない方が1減る。 そこで、解…

Alchemy [Facebook Hacer Cup Qualication Round, Problem B]

読んだことはないが、鋼の錬金術師のパロディらしい。 問題文: Problem B: Alchemy | Facebook Hacker Cup - 2020 - Qualification Round 概要 奇数個の要素を持つbit列が存在する。その中から連続する3つの要素をのぞき、選んだ3つの要素の中で多い方のb…

Travel_restrictions [Facebook Hacer Cup Qualication Round, Problem A]

,*概要 1列に都市が並んでおり、隣接する都市間のみ行き来することができる。ただし、いくつかの国は入国制限と出国制限を設けており、その場合は入国、出国ができない。 それぞれの都市に対して入国、出国が可能かがリストとして与えられる時、各都市からそ…

ABC173 D - Chat in a Circle 解説[python]

概要 考察 証明: 降順に追加するのが最大なことの証明 証明:max のみが一度足され、他は上から2回足されることの証明 実装 概要 それぞれAi の値を持つN 個の人がいる。 円に対して人を一人ずつ加えていくことを考える。 追加する場所はどこでも良い(好き…

エイシング プログラミング コンテスト 2020 A~D解説

しょうもない実装ミス、誤読を直せずA,Bの2完でした(え?) A - Number of Multiples 概要 考察 B - An Odd Problem 概要 考察 C - XYZ Triplets 概要 制約 考察 D - Anything Goes to Zero 概要 制約 考察 実装 A - Number of Multiples 概要 L 以上 R以下…

コドフォ Educational Contest 90 E Sum of Digits 解説[python]

ジャンル 概要 制約 考察 実装 ジャンル 整数問題 埋め込み問題 概要 f(x)を各位の和とする。 n,kが与えられる時 f(x)+f(x+1)+...+f(x+k) = n となるような最小の非負整数x を求めよ。 制約 0 1 考察 k が小さい(K N,Kが共に小さく、150*10 通りを計算して埋…

コドフォ Educational Contst 89 D. Two Divisors 解説[python]

ジャンル パズル、整数問題、構築 概要 整数nが与えられ、それの1以上の約数の組のうち、gcd(a+b, n) = 1となる組を1つ出力せよ。 ない場合は-1を出せ 制約 1 2 考察 約数の個数は10**7なら高々200個程度なので全探索でもいける? (ただ、クエリの個数が大き…

コドフォ Educational Contst 89 A~C 解説[python]

A. Shovels and Swords 考察 実装 B. Shuffle ジャンル 概要 考察 実装 C. Palindromic Paths 概要 考察 実装 A~Cの3完。後半集中が切れてDが解けなかった。pythonにとっては不利な問題だったけどもう少し数学的な考察を加えてあげれば間に合ったので実力不…

コドフォEducational 90 A~D解説[python]

結果:A~Dの4完遅解きでぎり青パフォくらい A - Donut Shops 概要 考察 実装 B - 01 Game 考察: 実装 C - Pluses and Minuses 考察 実装 D - Maximum Sum on Even Positions 考察 実装 A - Donut Shops 算数、パズル 概要 2つの店A,Bがある。 Aではドーナ…

Tenka1_2018 C - Align 解説[python]

概要 正の整数がN個与えられた時、それを並び替えて、隣あう要素との差の合計が最大になるようにした時の値を求めよ 制約 2 1 考察 Naiveな方法だと全ての並び方を全列挙して毎回差を計算することができるが、当然TLE 貪欲に考えると、大きい、小さいが交互…

diverta2019 D. DivRem Number 解説[python]

概要 正の整数Nがあり、以下の条件を満たす整数mの総和を求めよ Nをmで割った時の商とあまりが等しい N//m = N % m 制約 1

AGC031 A - Colorful Subsequence 解説[python]

概要 制約 考察 実装 反省 概要 長さNの文字列Sが与えられ、Sの部分列で全て異なる文字列からなるものの個数を10**9+7で割ったあまりを出力 ただし、異なる位置から出力されたものは違うものとする 制約 1 考察 Sが全て異なる文字列からなる場合を考えると、…

ARC019 B - こだわりの名前 解説[python]

概要 制約 考察 実装 反省 概要 大文字アルファベットのみからなる文字列Sが与えられ、それを1文字だけ任意の大文字アルファベットに変更することで回文でない文字列が幾つできるかを答えよ 制約 1

code-festival-2016-quala C - 次のアルファベット 解説[python]

最初考察をミスして、ACまで25min かかりました。 概要 制約 考察 実装 反省 概要 文字列Sが与えたれ、任意の文字を1つ後ろの文字(例a=>b, ただしz=>a )と変更する操作をちょうどK回行う時、辞書順最小のものを求めよ 制約 len(S) K

tenka1-2012-qualC B - ロイヤルストレートフラッシュ解説[python]

実装で詰まって1時間くらいかけてしまった 概要 考察 実装 反省 概要 トランプの山札の並び順が与えられ、それを先頭から1枚ずつ引く。 最短でロイヤルストレートフラッシュを完成させる時、山札から引いたが、ロイヤルストレートフラッシュの型に使わなかっ…

ABC067 C - Factors of Factorial 解説[python]

概要 整数Nがあり、N!の正の約数の個数を求めよ。 10**9+7で割ったあまりで回答する

ARC067 D - Walk and Teleport[python]

概要 制約 考察 実装 概要 数直線上にNこの街があり、それを街1から全ての街を通過するように移動する。 1進むのに疲労度が1かかり、任意の点を疲労度B でワープすることができる時の疲労度の最小値