題目描述
收到情報,有批新造的機械人要運輸到前線。小c將去破壞機械人的運輸。小c將雷射炮放置在公路的一旁,等運輸車經過的時候發射(假設雷射炮一定可以射穿車輛)。由於能源有限,雷射炮只能發射兩次。可以認為雷射炮放在座標軸的原點處,並向y軸正方向發射。每輛運輸車可以看作是乙個矩形,起始的x軸座標為xi ,所有的車均位於第一象限,長度為li,速度為1,朝x軸負方向運動。即經過t時間後,該車車頭的x座標為xi-t,車尾座標為xi-t+li 。只要打中車的任何乙個部分就算擊中。
請你算算,他在哪兩個時刻發射,才能摧毀最多的運輸車。
第一行乙個正整數 n ( 2≤n≤200 ),表示運輸個的數量。
接下來n行,每行兩個整數x和l(1≤x、l≤109),表示一輛車的x軸座標和長度。輸出
輸出最多可以摧毀的運輸車數量。
樣例輸入 4
2 23 1
5 2樣例輸出 4
思路所謂開兩槍打中最多的機械人,意思就是用平行於y軸的兩條直線,看最多能和多少方塊相交。那麼問題就轉化為求每個方塊和其他方塊的相交次數,然後選取其中最大的兩個。要注意,為了避免重複計數,我們在求得第一塊方塊後,應該刪除其和與其相交的方塊。
python**
#ecoding=utf-8
"""京東2017實習生筆試程式設計題:終結者
思路如下圖,本題實為找到兩條豎線使得,其相交的節點最多。所以第一步為判斷當前結點是否與其他節點相交,得到節點間的相交矩陣。
第二步找到相交矩陣中和其他節點相交次數最多的結點,第三步去掉已經打掉的節點,第四步重複第二步。
結果測試用例全部通過
"""def get_jiao(begain_1,len_1,begain_2,len_2):
end_1 = begain_1+len_1
end_2 = begain_2+len_2
if begain_1 > end_2:
return 0
elif end_1 < begain_2:
return 0
else:
return 1
def get_max_count(zhuan_list):
zhuankuan = zhuan_list
reslut = [[0 for col in range(len(zhuankuan))] for row in range(len(zhuankuan))]
#得到相交矩陣
for i in range(len(zhuankuan)):
for j in range(len(zhuankuan)):
jiao = get_jiao(zhuankuan[i][0],zhuankuan[i][1],zhuankuan[j][0],zhuankuan[j][1])
reslut[i][j] = jiao
#得到每個節點的相交節點個數
jiao_count = {}
for i in range(len(reslut)):
jiao_count[i] = sum(reslut[i])
sorted(jiao_count.items(),key=lambda item:item[1])
#得到相交個數最多的節點
jiao_max_count = jiao_count[0]
return reslut,jiao_max_count,jiao_count.keys()[0]
zhuankuan =
reslut,max_count,code_removw = get_max_count(zhuankuan)
#去掉第一***果
line_temp = reslut[code_removw]
new_zhuan_list =
for i in range(len(zhuankuan)):
if line_temp[i] == 0:
second_count = 0
if len(new_zhuan_list) != 0:
second_count = get_max_count(new_zhuan_list)[1]
print max_count+second_count
京東校招筆試題
題目摘自牛客網 給定字串 ascii碼0 255 陣列,請在不開闢額外空間的情況下刪除開始和結尾處的空格,並將中間的多個連續的空格合併成乙個。例如 i am a little boy.變成 i am a little boy 語言不限,但不要用偽 作答,函式輸入輸出請參考如下的函式原型 void f...
2017校招筆試題
題目 輸入乙個字串從左到右遍歷,如果遇到三個連續相同的子串就將這個子串刪除,並將原串剩下的部分拼接到一起,重複上述過程,直到字串中沒有可以刪除的子串。eg 輸入 aaabccdddcb aabbbabbba 輸出 bb a重要 從乙個字串中刪除乙個子串,必須將原字串的內容strcpy到開闢的數字中 ...
2023年校招題
牛牛有乙個魚缸。魚缸裡面已經有n條魚,每條魚的大小為fishsize i 1 i n,均為正整數 牛牛現在想把新捕捉的魚放入魚缸。魚缸內存在著大魚吃小魚的定律。經過觀察,牛牛發現一條魚a的大小為另外一條魚b大小的2倍到10倍 包括2倍大小和10倍大小 魚a會吃掉魚b。考慮到這個,牛牛要放入的魚就需要...