ZJ19 雙指標 三個站點

2021-10-21 15:30:51 字數 1302 閱讀 9975

這題一看題我當場暴力。。結果就超時。仔細一看題,發現中間那個沒什麼卵用。雙指標是解決這題很好的方法,可以用來找左右邊界。固定的雙指標模板會每次固定右邊界,所以咱們對左邊的陣列取2的組合即可。

from math import factorial

mod =

99997867

n, d =

input()

.split(

' ')

n, d =

int(n)

,int

(d)builds =

o =input()

.split(

' ')

for c in o:

int(c)

)

l =0

ret =

0for r, num in

enumerate

(builds)

:while num - builds[l]

> d:

l +=

1 n = r-l

if n >=2:

ret +=

int(n*

(n-1)/

2)% mod

ret %= mod

print

(ret)

可以看到,上述**輸入花了很多功夫,其實是可以改的,用map可以變字串為int,再變list即可。

from math import factorial

mod =

99997867

o1 =

list

(map

(int

,input()

.split(

' ')))

d = o1[1]

builds =

list

(map

(int

,input()

.split(

' ')))

l =0

ret =

0for r, num in

enumerate

(builds)

:while num - builds[l]

> d:

l +=

1 n = r-l

if n >=2:

ret +=

int(n*

(n-1)/

2)% mod

ret %= mod

print

(ret)

用map改進後**優雅了很多。

三個陣列三數和問題思考(雙指標)

題目 之前介紹過在乙個陣列上的三數和問題,根據排序後的單調性,我們可以利用雙指標來尋找到三個數和為k的三元組,對於四元組實際上多一維進行列舉 四數和問題 這裡還有個hash表的解法。那麼,回歸三數和問題,如果三個數分別處在三個陣列中呢?所求的三元組要處於三個陣列。思路 我們同樣用雙指標的思路 關於這...

機器學習 三個指標

首先,來了解一下下真正例 假正例 假負例 真負例。tp,fp,fn,tn 聽著就迷迷糊糊 不過,有了下面這張圖就好理解多了 嘻嘻這是我花了二十分鐘做出來的!真正例 tp 實際值為yes 也為yes 假正例 fp 實際值為no,為yes 假負例 fn 實際值為yes,為no 真負例 tn 實際值為no...

near far huge三個指標的區別

1 近 near 指標 近指標是16位指標,它只含有位址的偏移量部分,當用組合語言和c語言混合程式設計時,組合語言總是假設ds含有資料目標的位址。雖然近指標占用空間最小,執行速度最 快,但它有乙個嚴格的限制,即只能64k位元組以內的資料,且只能訪問程式的資料段內的資料。如果在小模式下編譯乙個程式,而...