時間限制:50ms 記憶體限制:1000k
提交次數:193 通過次數:88
題型: 程式設計題 語言: g++;gcc;vc
description
輸入格式
第1行是正整數n,(n<=10000)
第2行是整數序列 a1 a2 … an
輸出格式
計算出的最大覆蓋區間長度
輸入樣例
101 6 2 1 -2 3 5 2 -4 3
輸出樣例5提示
若依次去求出每個數的最大覆蓋長度,則必須有兩個巢狀的迴圈,時間複雜度為o(n^2)。
但此處求所有數的乙個最大覆蓋長度,倒沒有必要每個數的最大覆蓋長度都求出來。
初始時,用兩個指標i和j指向串末,當ai和aj的關係滿足不等式時,j不動,i往左
走,……,直到不等式不滿足,記錄下長度。
下一步j往左移乙個,i不回退,繼續上面的比較,若找到更長的覆蓋長度,更新。
每迴圈一次要麼i要麼j少1;最後i=-1,j=0;共進行了2(n-1)次。所以時間複雜度為o(n)。
**奉上,無懈可擊,注意比較的時候是,兩個絕對值比較
#include
#include
intmain()
for(
int i=n-
1,j=n-
1;j>
0;j--)if
(maxlength}printf
("%d"
,maxlength)
;return0;
}
集合覆蓋問題 最大覆蓋問題 呼叫中心排班問題閒談
一 集合覆蓋問題 集合覆蓋問題 set covering problem 簡稱scp 是運籌學研究中典型的組合優化問題之一,工業領域裡的許多實際問題都可建模為集合覆蓋問題,如資源選擇問題 設施選址問題 移動基站的選址 物流中心的選址 等。scp的乙個典型應用描述如下 要在乙個城市建造若干個消防隊駐紮...
集合覆蓋問題 最大覆蓋問題 呼叫中心排班問題閒談
經典scp描述包含乙個集合u以及u內元素構成的 若干各小類集合s,目標是找到s 的乙個子集,該子集滿足所含元素包含了所有的元素且使小類集合個數最少。例如,u s 找到集合能滿足條件的可以有o 或是o 至於具體選哪種組合,還有引申的乙個問題 wsc,即weighted set cover加權集合覆蓋,...
棋盤覆蓋 最大匹配
題目描述 給出一張nn n 100 的西洋棋棋盤,其中被刪除了一些點,問可以使用多少12的多公尺諾骨牌進行掩蓋。輸入格式 第一行為n,m 表示有m個刪除的格仔 第二行到m 1行為x,y,分別表示刪除格仔所在的位置 x為第x行 y為第y列 輸出格式 乙個數,即最大覆蓋格數 include define...