貪心題目選講

2022-05-12 08:44:12 字數 422 閱讀 9867

假定海岸線是一條無限延伸的直線,陸地在海岸線的一邊,大海在另一側。海中有許多島嶼,每乙個小島我們可以認為是乙個點。現在要在海岸線上安裝雷達,雷達的覆蓋範圍是d,也就是說大海中乙個小島能被安裝的雷達覆蓋,那麼它們之間的距離最大為d。

我們使用平面直角座標系,定義海岸線是x軸,大海在x軸上方,陸地在下方。給你海中每乙個島嶼的座標位置(x,y)和要安裝的雷達所覆蓋的範圍d,你的任務是寫乙個程式計算出至少安裝多少個雷達能將所有的島嶼覆蓋。

我們考慮如何轉化問題,考慮乙個特定的島嶼,對於它來說能夠覆蓋到它的雷達的位置一定是在海岸線上的乙個連續的區間。這樣就將問題轉化為了對於一堆區間,求出至少用幾個點才能將它們全都覆蓋到。

我們將區間按照右端點排序,然後記錄上乙個選取的雷達的位置。我們列舉區間,如果這個區間的左端點座標大於上乙個雷達的位置,那麼我們就在這個區間的右端點新放乙個雷達並更新答案

CodeChef題目選講

關鍵點 不超過7條 根據咕咕原理,所以答案最少是n 7 n小於49就暴力 隨機化找兩個點判斷直線上的點個數,隨機500次,概率就很高了 法二 點數大於50,答案至少是8 答案一定是7條路之一 隨機找7個點,按照級角序排序,點數大於7的直線就刪去上面的點 之後random不考慮,但是實際上不能真刪除,...

字尾陣列題目選講

複習題 luogu題單 1.noi2015 品酒大會 題意 forall i 0,n 求有多少對字尾滿足 lcp ge i 以及滿足條件的兩個字尾的權值乘積的最大值。我們統計出對於 1.n 中的每個 i 統計一下有多少個 lcp i 再做個字尾和。因為 lcp i,j min st times ed...

6 5 競賽題目選講

undraw the trees include includeusing namespace std const int maxn 20000 5,maxl 200 5 int cnt 0,sum 0 string tree maxl struct node node maxn node buil...