NYOJ 飛彈發射 河南省第九屆省賽D題 LIS

2021-07-31 12:51:02 字數 1450 閱讀 4316

時間限制: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

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

尋找射線內不與兩條射線平行的lis,首先輸入的時候計算斜率,判斷每個點是否在射線內,然後就是排除與射線平行的線段,這裡我採用的方法是,將橫座標減去該點在上射線投影點的x值,縱座標減去該點在下射線投影點的y值,這樣就把平行與兩個射線的點轉換為與x軸,y軸平行的了,如圖2,將座標轉換完畢後就是平面上的lis問題了,不過要注意的是只能使用nlongn的方法寫,不然會超時。

#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 情報系統獲...