NOIP2018 提高組題解(比較簡單的一些思路)

2021-08-31 21:36:43 字數 759 閱讀 5500

day1(三道原題祭)

t1:區間減法不難想到差分。

差分完之後手動模擬一下發現就是把差分陣列中的證書加起來就好了,時間複雜度o(n

)o(n)

o(n)

。t2:

有乙個非常顯然的性質:簡化後的貨幣系統一定是原本的貨幣系統的子集。所以從小到大判斷是否能被比當前這個數小的陣列成就好了,這個可以直接用揹包實現。

t3:最小值最大自然想到二分答案。二分答案之後只需要找最多有多少條在樹上的路徑長度大於二分的答案,判斷這個路徑是否大於m就行了。找路徑條數可以每乙個點儲存乙個值v,表示以這個節點為根的子樹內統計完答案之後的以當前節點為一段的最長路徑長度,每個點更新答案就把它所有兒子的v值加上那個邊權如果大於二分的答案就直接答案++,否則就直接丟到乙個multiset裡面(一定要是multiset或者map或者set裡面存乙個pair,我考場上直接用set就咕咕了…)。然後遍歷multiset裡的元素,在multiset裡面二分查詢最小的和當前元素之和大於二分的答案的值的那個元素,答案++,然後刪除這兩個元素。就解決了這道題。

day2:

t1:是一棵樹(m=n-1)的情況直接對每個節點吧所有出邊排序,然後dfs一遍就好了。

如果是環套樹(m=n)的情況,找到環之後列舉刪除環上的每一條邊,然後就是樹的情況了,取字典序最小的那乙個。

t2:打表可以過,只不過要打很久。

正解我也不太懂…參見以下大佬的部落格:

t3:其實是一道動態dp的模板題,必選或者不選直接用inf代替矩陣元素就好了,用樹剖+線段樹或者lct來維護。

NOIP2018提高組初賽

在一條長度為 1 的線段上隨機取兩個點,則以這兩個點為端點的線段的期望長度是 1 3 frac13 31 解析 使用排除法解決問題,當左邊的點在左邊端點是,期望長度為1 2 frac12 21 所以答案一定小於1 2 frac12 21 為了統計乙個非負整數的二進位制形式中 1 的個數,如下 int...

NOIp2018 提高組遊記

上午請假,沒去學校,在家裡刷了十多道題,中午12點出發去杭州 16點到達賓館,和hsy,oyyj嘮了會兒嗑,開始刷模板 晚飯炸雞真香,和xjd學長聊了一會兒,又和鄒sir聊了一會兒,回顧了自己的部落格,22點準時睡覺 失眠了,22 00 02 00,我不知道我是怎麼度過的,作為提高萌新,真的有點緊張...

NOIP 2018 提高組 鋪設道路

傳送門 題目描述 春春是一名道路工程師,負責鋪設一條長度為 n nn 的道路。鋪設道路的主要工作是填平下陷的地表。整段道路可以看作是 n nn 塊首尾相連的區域,一開始,第 i ii 塊區域下陷的深度為 d id i di 春春每天可以選擇一段連續區間 l ll r rr 填充這段區間中的每塊區域,...