1. 程式人生 > >NOIP2018 Day1遊記

NOIP2018 Day1遊記

正題

      前一天晚上說不著,看了半天發現枕頭太高了。

      第二天早上一起來就洗了一個澡,神志清醒,跟好舍友Braz出去找早餐吃,結果找了半天麥當勞發現在門口????

      來到考場,準備好一切東西進入考場。

      第一題:積木大賽?

      原題,就是有n個數,ai,每次可以操作一個區間,使得這個區間的數減一,並且這個區間必須大於0。問最少操作多少次? 

      明顯是一個Dp,但是賽場上面我使用10000個vector來存每一個數的位置。過應該沒問題

      第二題:給出n種面值的貨幣,要你求一種相同功能的貨幣並且是的面值儘量小。(相同功能指的是組成的價錢都能組成,不能組成的價錢都不能組成

      那麼把面值排序,然後看一下當前面值是否能被前面的面值組成,如果可以,那麼就捨棄。否則就要選,並且跑一次完全揹包。就完事兒了。O(T*n*max_{a_i}+T*n\ log_2\ n).爆炸的機率不大。

      第三題:n個點的樹,找一組方案,選出m條路徑,使得m條路徑中的最短路徑最長。

      這題我只會部分分,40到60.

      問了師兄,先用二分答案,然後驗證,首先每個節點的兒子產生一條向上的路徑,那麼把這些路徑長度加上節點到兒子的邊排一遍序,大於等於mid的直接成為一條路徑,其他的找到與其匹配的最小的加起來大於等於mid成為一條路徑,剩下的選最大的往上送即可。

      期望250,祝大家明天認真阿珂。