*白俊2109号-巡回講演
n校の大学が有名な学者を講演に招待した.各大学は、d日以内にスピーチに来れば、pのスピーチ料を支払うと通知した.講演料の最低価格を求めます.
#正解コード
これは前に解いた課題問題と似た脈絡を持っている.数日以内に解決すれば得点する.講演料の最安値が重要なので、講演料の降順で並ぶのは事実ですが、案件日アルゴリズムでは締め切り日は重要ではないようです.
大きな講演料から、締め切り付近で支払います.つまり、最大限遅らせてやれば、その前の締め切りの日程がいっぱいになれば、その時の講義の講演料はもっと高くなるということです.
だから、要するに、スケジュールを完成させると同時に、できるだけ多くの報酬を得ることができます.
似たような質問ですが、文章を書く理由は難易度が増すにつれてheapqを使う回数が増えていると感じたからです.優先順位キューとGriddyアルゴリズムを混ぜて多くの問題を出すようだ.
その中で、forゲート回りのリストで問題を解く場合、正解の原因は速度制限が緩いことで、ここの核心はheapqで問題を解くと、速度が9倍速いことです.
このコードは締め切り日の昇順に並べられています.
なぜなら、スピーチ代はheapが自分で手配し、急いでスピーチしてこそlen(p list)と比べることができるからだ.
次にheapqを順番に入れます.
加えられたスコアが持つ締め切り日とpリストの長さを比較すると、len(pリスト)>i[1]の場合は、日程が初日からi[1]でいっぱいになっている.では1つ空ける必要がありますが、heapppop()をすると、スピーチ料が最も少ないスピーチが流行し、p listにはいつも最大のスピーチ料があります.
#正解コード
これは前に解いた課題問題と似た脈絡を持っている.数日以内に解決すれば得点する.講演料の最安値が重要なので、講演料の降順で並ぶのは事実ですが、案件日アルゴリズムでは締め切り日は重要ではないようです.
大きな講演料から、締め切り付近で支払います.つまり、最大限遅らせてやれば、その前の締め切りの日程がいっぱいになれば、その時の講義の講演料はもっと高くなるということです.
だから、要するに、スケジュールを完成させると同時に、できるだけ多くの報酬を得ることができます.
import sys
input = sys.stdin.readline
n = int(input())
schedules = [0] * 10001
lectures = []
for _ in range(n):
pay, day = map(int, input().split())
lectures.append((pay, day))
lectures.sort(key=lambda x: (-x[0]))
for i in range(n):
for j in range(lectures[i][1], 0, -1):
if schedules[j] == 0:
schedules[j] += lectures[i][0]
break
print(sum(schedules))
#参照コード似たような質問ですが、文章を書く理由は難易度が増すにつれてheapqを使う回数が増えていると感じたからです.優先順位キューとGriddyアルゴリズムを混ぜて多くの問題を出すようだ.
その中で、forゲート回りのリストで問題を解く場合、正解の原因は速度制限が緩いことで、ここの核心はheapqで問題を解くと、速度が9倍速いことです.
このコードは締め切り日の昇順に並べられています.
なぜなら、スピーチ代はheapが自分で手配し、急いでスピーチしてこそlen(p list)と比べることができるからだ.
次にheapqを順番に入れます.
加えられたスコアが持つ締め切り日とpリストの長さを比較すると、len(pリスト)>i[1]の場合は、日程が初日からi[1]でいっぱいになっている.では1つ空ける必要がありますが、heapppop()をすると、スピーチ料が最も少ないスピーチが流行し、p listにはいつも最大のスピーチ料があります.
import heapq
n = int(input())
lst = []
for i in range(n):
lst.append(list(map(int, input().split())))
lst.sort(key=lambda x: (x[1]))
p_list = []
for i in lst:
heapq.heappush(p_list, i[0])
if (len(p_list) > i[1]):
heapq.heappop(p_list)
print(sum(p_list))
Reference
この問題について(*白俊2109号-巡回講演), 我々は、より多くの情報をここで見つけました https://velog.io/@ghenmaru/2109번-순회강연テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol