這第一次的ipeoi還是挺簡單的,考了一些比較基礎的知識,只不過繞了一點點,但可惜還是有很多人沒有想出正確的解法。題面在這裡:
下面是解題報告:
【a:傳紙條】
【題意分析】
首先有乙個長度為s的線段,有n架紙飛機,在第i個時刻被放出的紙飛機會被賦予乙個vi的速度,並做勻速直線運動。而如果一架慢的紙飛機被一架快的紙飛機追上,則快的紙飛機馬上掉落。如果只能在整數時刻放出紙飛機,而且每個時刻只能放出一架,那麼最多能到達終點的紙飛機有多少架?
【演算法分析】
首先,因為紙飛機間只有放出時刻的區別,所以我們只需要關心具體的到達時刻就可以了,這可以用乙個double算出來,注意一定要double,向上和向下取整都有反例使其出錯。然後乙個最長上公升序列就可以了。為什麼是最長上公升序列呢?因為只有到達時間依次上公升,才能夠不相互碰撞!所以又因為是最長……所以必定到達終點的紙飛機數是最多。
【b:投票】
【題意分析】
給出一些長達百位的整數,並且保證其中有乙個整數的出現次數超過半數,求這個整數,只給3.5mb記憶體,而且這些整數的個數在百萬規模。這其實是乙個經典的問題了。
【演算法分析】
因為記憶體太小,而且整數的大小太大,不能用計數排序,而且連存都不能存,可謂是條件非常苛刻。但是其實真正的演算法只有一句話:將所有不足百位的數前面補零,接著統計每一位上出現次數最多的數,然後直接將這些數按順序輸出,並去除前導零。這個演算法的正確性證明不難想,因為出現次數最多的整數對於其的每乙個數字的相應貢獻肯定大於其他所有數的數字貢獻和。
【c:ytc的座標軸】
【題意分析】
給出pi和vi,求對於每一對不重複的i和j,其的聯合權值之和。
【演算法分析】
其實這一題很簡單,首先排序一遍,從大到小,就就可以直接消去max函式的影響,就將原函式消成了vj*(pj-pi)(i
【d:思勝的路線】
【題意分析】
給出n個城市,這些城市中的k個重要城市,以及m條路線,問從1號城市途徑這些所有的重要城市到達第n個點的最短路徑是多少。
【演算法分析】
首先,用floyed求出任意兩點間的最短路,再列舉重要城市的排列,再求相應的總最短路徑即可。
下面給出標程:
壓縮包的密碼是#include。細細理解一下,其實還是非常之簡單的,但是比較繞。
dp OJ D題解題報告
題目描述 一大串英文就不說了,反正就是先輸入乙個大於零小於一百的數,然後迴圈,每一次都輸入乙個字串,判斷要鍵盤輸入這段字串需要敲幾次鍵盤。友情提示,鍵盤開始和結束的時候caps都是小寫狀態,我最後才看出來這事,我真想吐槽一句,你管他最後的狀態是啥有什麼用,注意 如果是單個的大寫字母,直接用shift...
簡單題 解題報告
給一顆 n le 80 節點的樹,開始所有節點都是白色,每個時間隨機染黑一條鏈,求把整棵樹染黑的期望時間,對 998244353 取模 考慮 min max 容斥 某集合 s 最後乙個點出現的期望時間為 max s 第乙個點出現的期望時間是 min s 則有 max s sum 1 min t 考慮...
石子問題解題報告
description 有兩堆石子,數量任意,可以不同。遊戲開始由兩個人輪流取石子。遊戲規定,每次有兩種不同的取法,一是可以在任意的一堆中取走任意多的石子 二是可以在兩堆中同時取走相同數量的石子。最後把石子全部取完者為勝者。現在給出初始的兩堆石子的數目,如果輪到你先取,假設雙方都採取最好的策略,問最...