[python]李珂太大数法則
💡 だいすうのほうそく
就職のためのコードテストwith Python(羅東彬)
: 92p
異なる数の配列がある場合、与えられた数をM回加算して最大数の法則を生成する.
配列内のインデックスの数はKを超えることはできません.
[2, 4, 5, 4, 6], M=8, K=3
⇒ 6 + 6 + 6 + 5 + 6 + 6 + 6 + 5 = 46
異なるインデックスが同じ数を持つ場合は、異なるとみなされます.
[3, 4, 3, 4, 3], M=7, K=2
⇒ 4 + 4 + 4 + 4 + 4 + 4 + 4 = 28
第1行は、N(2≦N≦1000)、M(1≦M≦10000)、K(1≦K≦10000)の自然数を与え、各自然数はスペースで区切られる. 行目にはN個の自然数がある.各自然数はスペースで区切られています.ただし、自然数ごとに1以上10000以下の数です. 入力によって与えられるKは、常にM以下である. の最初の行では、東彬の大数の法則に基づいて、加算された答えが出力されます.
階調アルゴリズム
-貪欲な方法で、今の状況で、今すぐ良いものを選ぶ方法
-現在の選択が今後に与える影響を考慮せずに、すべての瞬間に最もよく見えるものを選択します. 降順に、大きいから小さいまで を並べます.最大数K回を加え、K回を超えて2番目に大きい数を加え、その後最大数K回(M回) を加える.
◇繰り返される数列を知る
[2, 4, 5, 4, 6], M=8, K=3
⇒ (6 + 6 + 6 + 5) + (6 + 6 + 6 + 5) = 46
重複数列の長さ:(K+1)
◇Mを(K+1)に分けた部重複数列の回数
ここにKを乗じて、最も多く出現したのは
◇Mが(K+1)に分けられない場合、残りの最大数が増加する
増加した最大数量:M//(K+1)*K+M%(K+1)
就職のためのコードテストwith Python(羅東彬)
: 92p
質問する
異なる数の配列がある場合、与えられた数をM回加算して最大数の法則を生成する.
配列内のインデックスの数はKを超えることはできません.
[2, 4, 5, 4, 6], M=8, K=3
⇒ 6 + 6 + 6 + 5 + 6 + 6 + 6 + 5 = 46
異なるインデックスが同じ数を持つ場合は、異なるとみなされます.
[3, 4, 3, 4, 3], M=7, K=2
⇒ 4 + 4 + 4 + 4 + 4 + 4 + 4 = 28
入力条件
しゅつりょくじょうけん
入力例
5 8 3
2 4 5 4 6
出力例
46
に答える
アイデア
-貪欲な方法で、今の状況で、今すぐ良いものを選ぶ方法
-現在の選択が今後に与える影響を考慮せずに、すべての瞬間に最もよく見えるものを選択します.
コード#コード#
n, m, k = map(int, input().split())
data = list(map(int, input().split()))
data.sort(reverse=True)
result = 0
while True:
for i in range(k):
if m == 0:
break
result += data[0]
m -= 1
if m == 0:
break
result += data[1]
m -= 1
print(result)
💡 Mの大きさが100億を超えると?◇繰り返される数列を知る
[2, 4, 5, 4, 6], M=8, K=3
⇒ (6 + 6 + 6 + 5) + (6 + 6 + 6 + 5) = 46
重複数列の長さ:(K+1)
◇Mを(K+1)に分けた部重複数列の回数
ここにKを乗じて、最も多く出現したのは
◇Mが(K+1)に分けられない場合、残りの最大数が増加する
増加した最大数量:M//(K+1)*K+M%(K+1)
n, m, k = map(int, input().split())
data = list(map(int, input().split()))
data.sort()
first = data[n - 1]
second = data[n - 2]
count = m // (k + 1) * k
count += m % (k + 1)
result = 0
result += (count) * first
result += (m - count) * second
print(result)
Reference
この問題について([python]李珂太大数法則), 我々は、より多くの情報をここで見つけました https://velog.io/@jiyeah3108/Python-이코테큰-수의-법칙テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol