NOI2016 區間 線段樹

2022-06-29 22:51:10 字數 2116 閱讀 4940

將區間按照長度排序,每次將相同長度的區間插入,直到有乙個點能被至少m個區間覆蓋,這個可以用線段樹維護。

這時我們就可以刪除長度小的區間直到不滿足條件。

重複做就可以了

1 #include 2 #include 3 #include 4 #include 5 #include 6

#define ll long long 78

using

namespace

std;910

inline ll read()

1117 ch =getchar();18}

19while(ch >= '

0' && ch <= '9'

) 23

return x *w;24}

2526

const

int maxn = 5e5 + 10;27

28struct

interval inter[maxn];

3233

int ans =2e9;

34int

n, m;

35 mapm;

36int tmp[maxn * 2

];37

intlen;

38int it[maxn][3

];39

int cnt = 0;40

41bool

cmp(interval a, interval b)

4245

46struct

segment seg[maxn * 10

];50

51void pushdown(int

x)52

5758

void pushup(int

x)59

6263

void update(int ul, int ur, int l, int r, int x, int

k)64

70int mid = (l + r) >> 1;71

pushdown(x);

72if(mid >=ul)

75if(mid

78pushup(x);

79return;80

}8182int

main()

8392 sort(tmp + 1, tmp + 1 + 2 *n);

93 len = unique(tmp + 1, tmp + 1 + 2 * n) - tmp - 1;94

//cout<95

for(int i = 1; i <= len; i++)

98 sort(inter + 1, inter + 1 +n, cmp);

99/*

for(int i = 1; i <= n; i++)

102cout<103

/*for(int i = 1; i <= len; i++)

106cout

107//

return 0;

108 inter[0].len = -1, inter[n + 1].len =2e9;

109 it[0][0] =1e9;

110for(int i = 1; i <= n + 1; i++)

116}

117/*

for(int i = 1; i <= cnt; i++)

120cout

121int mi = 0, ma = 0

;122

int status = 0

;123

while(mi <= cnt && ma

131}

132//

cout<133

while(seg[1].maxn >=m)

138 mi++;

139//

cout<140

}141

//cout<142

}143

if(ans ==2e9)

146 printf("

%d\n

", ans);

147return0;

148 }

view code

線段樹 NOI2016 區間

在數軸上有 n 個閉區間 l 1,r1 l 2,r2 l n,rn 現在要從中選出 m 個區間,使得這 m個區間共同包含至少乙個位置。換句話說,就是使得存在乙個 x 使得對於每乙個被選中的區間 l i,ri 都有 li x r i 對於乙個合法的選取方案,它的花費為被選中的最長區間長度減去被選中的最...

NOI2016 區間 線段樹

在數軸上有 n個閉區間 l1,r1 l2,r2 ln,rn 現在要從中選出 m 個區間,使得這 m個區間共同包含至少乙個位置。換句話說,就是使得存在乙個 x,使得對於每乙個被選中的區間 li,ri 都有 li x ri。對於乙個合法的選取方案,它的花費為被選中的最長區間長度減去被選中的最短區間長度。...

NOI 2016 區間(雙指標 線段樹)

noi 2016 區間 首先離散化,然後對所有區間按照區間長度排序。然後用雙指標。雙指標保持 l r 這段的所有區間疊加後存在疊加次數為 m 的點。然後 an s等於每一次合法時的最小值。這樣顯然是對的。因為乙個合法的答案一定在某次雙指標區間內計數。include define lson rt 1 ...