noip2014senior複賽 飛揚的小鳥
【問題描述】
1. 遊戲介面是乙個長為 n,高為 m 的二維平面, 其中有
k 個管道(忽略管道的寬度)。
2. 小鳥始終在遊戲介面內移動。小鳥從遊戲介面最左邊
任意整數高度位置出發,到達遊戲介面最右邊時, 遊戲完成。
3. 小鳥每個單位時間沿橫座標方向右移的距離為 1, 豎直移動的距離由玩家控制。如果點選螢幕,小鳥就會上公升一定高度 x,每個單位時間可以點選多次,效果疊加;如果不點選螢幕,小鳥就會下降一定高度 y。 小鳥位於橫座標方向不同位置時,上公升的高度 x 和下降的高度 y 可能互不相同。
4. 小鳥高度等於 0 或者小鳥碰到管道時,遊戲失敗。小鳥高度為 m 時, 無法再上公升。
現在, 請你判斷是否可以完成遊戲。如果可以, 輸出最少點選螢幕數; 否則, 輸出小鳥最多可以通過多少個管道縫隙。
【輸入】
輸入檔名為 bird.in。
第 1 行有 3 個整數 n, m, k,分別表示遊戲介面的長度,高度和水管的數量,每兩個
整數之間用乙個空格隔開;
接下來的 n 行, 每行 2 個用乙個空格隔開的整數 x 和 y, 依次表示在橫座標位置 0~n-1
上玩家點選螢幕後, 小鳥在下一位置上公升的高度 x,以及在這個位置上玩家不點選螢幕時,
小鳥在下一位置下降的高度 y。
接下來 k 行, 每行 3 個整數 p, l, h,每兩個整數之間用乙個空格隔開。 每行表示一
個管道, 其中 p 表示管道的橫座標, l 表示此管道縫隙的下邊沿高度為 l, h 表示管道縫隙
上邊沿的高度( 輸入資料保證 p 各不相同,但不保證按照大小順序給出)。
【輸出】
輸出檔名為 bird.out。
共兩行。
第一行, 包含乙個整數, 如果可以成功完成遊戲,則輸出 1,否則輸出 0。
第二行, 包含乙個整數, 如果第一行為 1,則輸出成功完成遊戲需要最少點選螢幕數,
否則, 輸出小鳥最多可以通過多少個管道縫隙。
這道題很長,有點難得看。但是看懂了還是比較的好解決。
把這道題想成完全揹包,因為你只有跳和不跳兩種狀態,然而每一位置的跳躍可以是多次,所以就可以理解為完全揹包來求解問題了,只是說狀態轉移方程需要有所改變而已。
我在做的時候因為第二題寫了很久,除錯了很久,最終完了才發現是有個迴圈括號搞爆了,所以我採用貪心求取最之前的那3個點。
NOIP 2014 Senior 2 聯合權值
思路1 很明顯,題目給定的是一棵樹,所以想到使用樹形dp,所以首先,將無根樹轉換成有根樹。可以記錄乙個結點的所有孫結點 子結點的子結點 的最大權值以及它們的權值和 當然要求餘了 對於某個結點和它的所有孫子結點來說,它們的最大聯合權值就是孫子結點的最大權值乘以該結點的權值,聯合權值和就是孫子結點與該結...
NOIP 2012 Senior 3 開車旅行
還是太弱了 這道題拿到手上後完全沒有能夠在規定時間內解決的思路。不過還好,大體思路是對的 首先預處理a b在每個地方開一次車到達的地方。對於第一問,列舉a出發的位置,對於第二問,直接計算就行了。計算的方法就是挨著推,直到滿足題目中結束旅行的條件。很明顯,預處理的時間複雜度為o n2 計算的時間複雜度...
NOIP2014 尋找道路
題目描述 在有向圖g中,每條邊的長度均為1,現給定起點和終點,請你在圖中找一條從起點到終點的路徑,該路徑滿足以下條件 1 路徑上的所有點的出邊所指向的點都直接或間接與終點連通。2 在滿足條件1的情況下使路徑最短。注意 圖g中可能存在重邊和自環,題目保證終點沒有出邊。請你輸出符合條件的路徑的長度。輸入...