2020-12-10から1日間の記事一覧

PythonでJOI難易度6を埋める #19

H - JOIOJI まず,各文字の個数で累積和を取る.それぞれの累積和をcsum_j, o ,i とする.区間(i, j)で J, O, I の個数が同じになるとき,csum_j[ j ] - csum_j[ i ] = csum_o[ j ] - csum_o[ i ] = csum_i[ j ] - csum[ i ]となる. 上式を, csum_j[ j ] -…

PythonでJOI難易度6を埋める #18

A - オレンジの出荷 (Oranges) DP.dp[i]を番目までのオレンジを詰めるための最小のcostとして,計算する. 参考にした記事オレンジの出荷 (Oranges) - ia7ck-competitive-programming from sys import stdin input = stdin.readline n, m, k = map(int, inp…

PythonでJOI難易度6を埋める #17

B - スタンプラリー 2 (Collecting Stamps 2) J は先端に,I は一番後ろに挿入したときに組み合わせは最大になる. O を挿入する場合を考えると,挿入した地点よりも前のJと後ろのIの積だけ増加することが分かります.これは累積和で計算できます. from sy…