UESTC 1599 wtmsb 優先佇列 排序

2022-01-15 17:53:03 字數 455 閱讀 8527

分析:比賽的時候首先我就看到這道題資料是200000,跑時100ms,我把思路捋了一遍,然後講給旁邊人聽,一眼看過去,lfh說用哈夫曼樹吧,然後找了個板子直接扔上去了,

優先佇列+排序的做法就是取出隊頭的兩個數,然後把它們的和推入到這個佇列中,然後優先佇列會自動進行排序操作,所以你就能每一次取出兩個最小的數,然後推入這兩個數的和到佇列中去,時間複雜度估計不會超過o(n)(畢竟只有100ms啊,大概也就只能跑1e7的資料)

下面給出ac**:

1 #include 2

using

namespace

std;

3const

int n=200020;4

intmain()515

int sum,ans=0;16

while(1)17

28 cout29return0;

30 }

Tyvj 1599 鍛鍊計畫

題目 鍛鍊計畫 tyvj 1599 題目大意 給定m個計畫和初始體力n,每項計畫中會損耗體力,每秒會增加1體力,求是否會 累死,輸出何時累死,若沒事則輸出最後的體力。一天1440分鐘 資料範圍 0 m 500 樣例 10 1 basketball 1 10 1 accepted1440 做題思路 一...

UVA 1599 理想路徑

這道題思路很清楚,先反向bfs搜尋點n到每個點的最短距離,然後再從點1正向bfs搜尋,每次搜尋距離減1的點,並將路徑上顏色最小的點入隊,如果有多個相同的則將這多個點入隊。對於佇列中的任意乙個點v,d 1 d v 一定是大於等於0的,所以可以用cost d 1 d v 來記錄到點1為d 1 d v 距...

Uva 1599 最佳路徑

題意 保證在最短路的時候,輸出字典序最小的路徑。方法 路徑上有了權值,可以利用圖論的資料結構來bfs,很方便。逆序bfs,找到每個點距離終點的最短路長 d x 然後,從起點,沿著 d u d v 1 的路徑,分層bfs,選字典序最小的。找到那個最小字典序的節點之後,從新建佇列。直到找完 d 0 in...