P1638 逛畫展 (尺取法)

2021-10-06 03:20:20 字數 737 閱讀 9596

傳送門

思路:顯然區間具有單調性,所以可以通過列舉區間左端點,讓區間右端點不斷增加,至於區間畫的種類數,用乙個陣列記錄區間的[l , r]的畫的種類數,不斷更新即可。

時間複雜度:o(n

)o(n)

o(n)

ac**:

#include

#include

#include

#include

#include

#include

using

namespace std;

typedef

long

long ll;

const

int n=

1e6+5;

#define mst(a) memset(a,0,sizeof a)

int a[n]

,cnt[n]

,n,m,x,y=

1e9+7;

//用cnt[i]維護區間每種畫的個數.

intmain()

if(sumbreak;if

(r-l+

1if(

--cnt[a[l++]]

==0) sum--

;//更新區間左端點.

}printf

("%d %d\n"

,x,y)

;return0;

}

洛谷 P1638 逛畫展 尺取法

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

P1638 逛畫展 左右指標移動

這道題不是莫隊,只是有莫隊的影子 題意 給出n個數字,給出m個畫家 表示這n個數字為1 m 讓我們找到乙個最小的範圍涵蓋這1 m個數,如果多解,則輸出左區間最小的解 思路 我們用左右指標移動來做此題,類似於莫隊 那麼如何做呢?我們一開始從第乙個端點開始,把第乙個端點納進來,然後開始分情況討論 假如已...

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

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