洛谷P2056 採花

2022-05-01 10:36:07 字數 1650 閱讀 6425

題目提供者shengmingkexue

標籤雲端↑

難度省選/noi-

時空限制1s / 128mb

提交  討論  題解  

蕭芸斕是 z國的公主,平時的一大愛好是採花。

今天天氣晴朗,陽光明媚,公主清晨便去了皇宮中新建的花園採花。花園足夠大,容納了 n 朵花,花有 c 種顏色(用整數 1-c 表示) ,且花是排成一排的,以便於公主採花。

公主每次採花後會統計採到的花的顏色數, 顏色數越多她會越高興! 同時, 她有一癖好,她不允許最後自己採到的花中,某一顏色的花只有一朵。為此,公主每採一朵花,要麼此前已採到此顏色的花,要麼有相當正確的直覺告訴她,她必能再次採到此顏色的花。 由於時間關係,公主只能走過花園連續的一段進行採花,便讓女僕福涵潔安排行程。福涵潔綜合各種因素擬定了 m 個行程,然後一一向你詢問公主能採到多少朵花(她知道你是程式設計高手,定能快速給出答案! ) ,最後會選擇令公主最高興的行程(為了拿到更多獎金! ) 。

輸入格式:

第一行四個空格隔開的整數 n、c 以及 m。

接下來一行 n 個空格隔開的整數,每個數在[1, c]間,第i 個數表示第 i 朵花的顏色。

接下來 m 行每行兩個空格隔開的整數 l 和 r(l ≤ r) ,表示女僕安排的行程為公主經過第 l 到第r 朵花進行採花。

輸出格式:

共m行, 每行乙個整數, 第i個數表示公主在女僕的第i個行程中能採到的花的顏色數。

輸入樣例#1:

5 3 5 

1 2 2 3 1

1 5

1 2

2 2

2 3

3 5

輸出樣例#1:

2 

0 0

1 0

對於100%的資料,1 ≤ n ≤10^5,c ≤ n,m ≤ 10^5。

分析:這道題是bzoj上的閹割版,資料大小是1/10,那麼我們完全可以用莫隊演算法來做!莫隊演算法的實質還是暴力,不過就是用了一種很奇怪的排序方式233,理解了暴力基本上就理解了莫隊演算法,在這裡不多解釋.至於bzoj上的那道題,要用和hh的項鍊一樣的方法:樹狀陣列來解.

#include #include 

#include

#include

#include

using

namespace

std;

int n, c, m,a[100010],cnt[100010],ans,anss[100010

];int

sizee;

struct

node

e[100010

];bool

cmp(node a, node b)

void add(int

x)void remove(int

x)int

main()

sort(e + 1, e + 1 +m, cmp);

int ll = 1, rr = 0

;

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

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

printf(

"%d\n

", anss[i]);

return0;

}

洛谷P5049 洛谷P5022 題解 旅行

原題 資料加強版 加強版 參考你谷題解 終於調過了 又是一如既往的申必錯誤 noi plus石錘了 原題的資料允許我們 o n 2 暴力斷邊,但是加強版的資料達到了 n log n 級別,我們必須在斷邊這一環節尋求更好的解法。考慮我們進入環後在何處回溯 根據繼續走環走到的點分類 設當前已經從 b 走...

洛谷練習P2279 P1346

2020年,人類在火星上建立了乙個龐大的基地群,總共有n個基地。起初為了節約材料,人類只修建了n 1條道路來連線這些基地,並且每兩個基地都能夠通過道路到達,所以所有的基地形成了乙個巨大的樹狀結構。如果基地a到基地b至少要經過d條道路的話,我們稱基地a到基地b的距離為d。由於火星上非常乾燥,經常引發火...

洛谷 P1396 營救

題目描述 咚咚咚 查水表!原來是查水表來了,現在 找這麼熱心上門的查表員啊!小明感動的熱淚盈眶,開起了門 媽媽下班回家,街坊鄰居說小明被一群陌生人強行押上了警車!媽媽豐富的經驗告訴她小明被帶到了t區,而自己在s區。該市有m條大道連線n個區,一條大道將兩個區相連線,每個大道有乙個擁擠度。小明的媽媽雖然...