時間限制:1000 ms | 記憶體限制:65535 kb
難度:4
alpha 機構研發出一種新型智慧型飛彈,它能夠在雷達檢測到的區域內,選擇一條前進的路徑, 擊破路徑上所有的目標物。 雷達位於(0,0)處,它能夠檢測到兩條射線之間的區域(不妨設在第一象限)。 飛彈一開始置放在(0,0)處,它可以在雷達能檢測到的區域內先選擇乙個目標物擊破,然後 再繼續前進,選擇另乙個目標物擊破。注意,飛彈不能沿著這兩條射線前進,當然也不能停在原 地。 可以假設,飛彈一旦發射,其能量無比大,前進的路徑無限長。 已知雷達能夠檢測到區域,其射線 1:ax-by=0 和射線 2:cx-dy=0。alpha 機構的總指揮希望 在發現目標群的第一時刻,計算出一條可以擊破最多目標物的路徑。
第一行: t 表示以下有 t 組測試資料(1≤t ≤8)
對每組測試資料:
第 1 行: n 表示目標物的個數
第 2 行: a b c d 代表兩條射線的斜率分別是 a/b 和 c/d。
接下來有 n 行,每行 2 個正整數 xi yi 即第 i 個目標物的座標。
【約束條件】
(1) n<=10^5 0<=a, b, c, d<=10^5 a 和 b 不會同時為 0,c 和 d 不會同時為 0;
(2) 0<= xi , yi <=10^6 i=1,…..,n
每組測試資料,輸出佔一行,即飛彈能擊破的最多目標數。
1尋找射線內不與兩條射線平行的lis,首先輸入的時候計算斜率,判斷每個點是否在射線內,然後就是排除與射線平行的線段,這裡我採用的方法是,將橫座標減去該點在上射線投影點的x值,縱座標減去該點在下射線投影點的y值,這樣就把平行與兩個射線的點轉換為與x軸,y軸平行的了,如圖2,將座標轉換完畢後就是平面上的lis問題了,不過要注意的是只能使用nlongn的方法寫,不然會超時。15 1 3 2 1
3 1
6 2
4 2
2 5
4 5
6 6
3 4
1 6
2 1
7 4
9 3
5 3
1 3
15 5
12 4
#include
#define n 100005
using
namespace
std;
struct nodeno[n];
bool sort_cmp(node a,node b)
return low;
}int lis(node a,int n)
}return k;
}int main()
}sort(no,no+p,sort_cmp);
cout
0;}
第九屆河南省ACM省賽 D 飛彈發射
alpha 機構研發出一種新型智慧型飛彈,它能夠在雷達檢測到的區域內,選擇一條前進的路徑,擊破路徑上所有的目標物。雷達位於 0,0 處,它能夠檢測到兩條射線之間的區域 不妨設在第一象限 飛彈一開始置放在 0,0 處,它可以在雷達能檢測到的區域內先選擇乙個目標物擊破,然後 再繼續前進,選擇另乙個目標物...
飛彈發射 河南省第九屆省賽D題
時間限制 1000 ms 記憶體限制 65535 kb 難度 4 alpha 機構研發出一種新型智慧型飛彈,它能夠在雷達檢測到的區域內,選擇一條前進的路徑,擊破路徑上所有的目標物。雷達位於 0,0 處,它能夠檢測到兩條射線之間的區域 不妨設在第一象限 飛彈一開始置放在 0,0 處,它可以在雷達能檢測...
河南省第九屆省賽 通道安全
時間限制 1000 ms 記憶體限制 65535 kb 難度 2描述 alpha 機構有自己的一套網路系統進行資訊傳送。情報員 a 位於節點 1,他準備將乙份情報 傳送給位於節點 n 的情報部門。可是由於最近國際紛爭,戰事不斷,很多通道都有可能被遭到監 視或破壞。經過測試分析,alpha 情報系統獲...