五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

【編程筆記】區(qū)間合并

2023-01-28 18:16 作者:夕弦-Yamai_Yuzuru  | 我要投稿

給定?n?個(gè)區(qū)間?[l,r],要求合并所有有交集的區(qū)間。

注意如果在端點(diǎn)處相交,也算有交集。

輸出合并完成后的區(qū)間個(gè)數(shù)。

例如:[1,3]?和?[2,6]?可以合并為一個(gè)區(qū)間?[1,6]。

輸入格式

第一行包含整數(shù)?n。

接下來?n?行,每行包含兩個(gè)整數(shù)?l?和?r。

輸出格式

共一行,包含一個(gè)整數(shù),表示合并區(qū)間完成后的區(qū)間個(gè)數(shù)。

區(qū)間合并思路

首先,按區(qū)間左端點(diǎn)進(jìn)行排序。

其次,依次判斷是否存在交集。

對(duì)于判斷交集而言,在排序之后,區(qū)間的關(guān)系有三種可能。

1.區(qū)間A包含了區(qū)間B。

2.區(qū)間A與區(qū)間B有交集。

3.區(qū)間A與區(qū)間B沒有關(guān)系。

1.2.條件符合區(qū)間合并的要求,從中也可以得出比較的條件,即出區(qū)間A的右端點(diǎn)>=區(qū)間A的左端點(diǎn)(=是因?yàn)槎它c(diǎn)處相交,也算有交集)。

由于只需統(tǒng)計(jì)合并完成后的區(qū)間數(shù)量,因此需要先記錄區(qū)間總數(shù),每當(dāng)合并的時(shí)候減一。

而為了提高效率,在判斷完需要合并區(qū)間之后,直接更新接下要比較的區(qū)間,使之成為之前需要合并的區(qū)間。

比如,有區(qū)間A,B,C(左端點(diǎn)有序)。區(qū)間A和B判斷完需要合并后,直接更新B,使B區(qū)間為原來A和B的合并區(qū)間,再將新的B區(qū)間和C比較。

這樣一來,就可以快速統(tǒng)計(jì)需要合并區(qū)間的數(shù)量了。

區(qū)間合并N-s圖

sort 排序的是一給左閉右開的區(qū)間。 (即取得到最左邊元素,但取不到最右邊元素

而對(duì)于sort(a+1, a+1+n)而言,覆蓋的范圍是a[1] - a[n]。

此外,a的效果等同于a[0],所以a + 1就是a[1],a + 1 + n就是a[n + 1],因?yàn)閟ort左閉右開的特性,所以不取a[n + 1],只取到a[n]。

至于這里的pair就是將兩個(gè)變量關(guān)聯(lián)在一起,可以認(rèn)為是結(jié)構(gòu)體,不過只有兩個(gè)變量,而且pair排序的時(shí)候,優(yōu)先第一位,這樣可以快速實(shí)現(xiàn)區(qū)間左端點(diǎn)進(jìn)行排序。

開心,這比離散化簡單多了。


【編程筆記】區(qū)間合并的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
康马县| 志丹县| 孟连| 安丘市| 虹口区| 兰西县| 沿河| 思南县| 图木舒克市| 伊宁市| 英德市| 西林县| 汝城县| 石渠县| 浦东新区| 舟曲县| 钦州市| 自治县| 环江| 巴彦县| 临海市| 江孜县| 恩平市| 若羌县| 湾仔区| 南乐县| 齐齐哈尔市| 屏山县| 车致| 桦甸市| 包头市| 九江市| 新田县| 巍山| 康平县| 沧州市| 新竹县| 明星| 天全县| 上饶县| 旌德县|