[algorithm] Greedy


会議雑記

  • 出典:https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=vjhh0712v&logNo=221678713605
  • 会議時間上記のように「会議数を最大限に把握する」には?
  • 会議時間の長い会議はもちろん避ける.
  • それでも会議時間は短い順に…?たくさん重ねて
  • 回答は会議終了の時間順に昇順である.
  • list [ (s,e) (s,e) (s,e) ... (s,e) ]各エレメントに(시작시간, 종료시간)のtuple


    こんなに短い時間で埋め尽くすのは、もっと良いOptimizeの方法はありません!
  • 正午図書館

  • 質問:http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=1508&sca=3020
  • 図書館「人が一番長い」と「誰もいない」
  • start「昇順」ソート
  • endのstart>、i+1のstart余裕、iのend<i+1のend、iのendを継続基準とする.
  • 秤。


    n.速達


    https://jjangsungwon.tistory.com/114

    プリンセスガーデン

  • https://www.acmicpc.net/problem/2457
    i番索引の花は3月1日に咲くことで含まれる.

  • inputは誤った日付を与えないので(月*100+日)として保存する.
  • 例えば、3月1日=3
  • import sys
    
    if __name__ == '__main__':
        readl=sys.stdin.readline
        N=int(readl())
        times=[0]*N
        for i in range(0,N):
            getline=(list)(map(int,readl().strip().split()))
            s=getline[0]*100+getline[1]
            e=getline[2]*100+getline[3]
            times[i]=(s,e)
        times=sorted(times,key=lambda item: item[0])
        date=301
        idx=0
        maxdate=0
        ans=0
        while (date <= 1130):
            for i in range(idx,N):
                if times[i][0] > date: break
                if times[i][1] > maxdate:
                    maxdate=times[i][1]
            if maxdate==date:
                print(0)
                exit(0)
            else:
                date=maxdate
                ans+=1
        print(ans)