P1638 逛畫展 左右指標移動

2022-06-02 04:42:09 字數 766 閱讀 1137

這道題不是莫隊,只是有莫隊的影子

題意:給出n個數字,給出m個畫家(表示這n個數字為1~m)

讓我們找到乙個最小的範圍涵蓋這1~m個數,如果多解,則輸出左區間最小的解

思路:我們用左右指標移動來做此題,類似於莫隊;

那麼如何做呢?我們一開始從第乙個端點開始,把第乙個端點納進來,然後開始分情況討論;

假如已經涵蓋,就看看能否更新答案,然後左指標右移

假如沒涵蓋,則右指標右移直到涵蓋為止;

複雜度答案2*1e6

1 #include2

using

namespace

std;

3const

int maxn=1e6+10;4

const

int inf=0x3f3f3f3f;5

inta[maxn];

6int

vis[maxn];

7int

sum;

8void add(intx)9

13void delete(int

x)14

18int

main()

1934

if(sum==m)

40 l++;delete(a[l-1

]);41}42

}43 printf("

%d %d\n

",ansa,ansb);

44return0;

45 }

view code

P1638 逛畫展 (尺取法)

傳送門 思路 顯然區間具有單調性,所以可以通過列舉區間左端點,讓區間右端點不斷增加,至於區間畫的種類數,用乙個陣列記錄區間的 l r 的畫的種類數,不斷更新即可。時間複雜度 o n o n o n ac include include include include include include ...

洛谷 P1638 逛畫展 尺取法

link description 博覽館正在展出由世上最佳的 m 位畫家所畫的圖畫。wangjy想到博覽館去看這幾位大師的作品。可是,那裡的博覽館有乙個很奇怪的規定,就是在購買門票時必須說明兩個數字,a和b,代表他要看展覽中的第 a 幅至第 b 幅畫 包含 a 和 b 之間的所有圖畫,而門票的價錢就...

雙指標法典中典 逛畫展(洛谷P1638)

題目描述 博覽館正在展出由世上最佳的 m 位畫家所畫的圖畫。wangjy想到博覽館去看這幾位大師的作品。可是,那裡的博覽館有乙個很奇怪的規定,就是在購買門票時必須說明兩個數字,a和b,代表他要看展覽中的第 a 幅至第 b 幅畫 包含 a 和 b 之間的所有圖畫,而門票 的價錢就是一張圖畫一元。為了看...