NOIP 2011 day1 選擇客棧

2021-07-04 12:23:32 字數 995 閱讀 8987

題目大意:

麗江河邊有 n 家很有特色的客棧,客棧按照其位置順序從1 到n 編號。每家客棧都按照

某一種色調進行裝飾(總共k 種,用整數0 ~ k-1 表示),且每家客棧都設有一家咖啡店,每

家咖啡店均有各自的最低消費。

兩位遊客一起去麗江旅遊,他們喜歡相同的色調,又想嘗試兩個不同的客棧,因此決定

分別住在色調相同的兩家客棧中。晚上,他們打算選擇一家咖啡店喝咖啡,要求咖啡店位於

兩人住的兩家客棧之間(包括他們住的客棧),且咖啡店的最低消費不超過p。

他們想知道總共有多少種選擇住宿的方案,保證晚上可以找到一家最低消費不超過p

元的咖啡店小聚。

解法:

如果一家編號為 i 咖啡店的最低消費大於p,則記flag[ i ]=1;否則,flag[ i ]=0.

考慮到計算滿足要求的對數不太容易, 從反面思考:

從1到n掃瞄出flag值等於1的連續客棧(在此區間內找到的客棧均為不滿足要求的方案),在掃瞄時用cnt[j]記錄當前顏色為j的客棧出現次數

cnt[j]++;

count+=(cnt [j]-1); (新的客棧可以與當前任意顏色相同客棧組合)

可以數出顏色相同但不滿足要求的客棧對數。

答案ans=sum-count.(sum為所有顏色相同的客棧對數)

即為滿足要求的客棧對數

**:

#include#include#includeusing namespace std;

bool flag[200010];

int cnt[100],count,sum;

int main()

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

cnt[col[i]]++;

count+=(cnt[col[i]]-1);

} memset(cnt,0,sizeof(cnt));

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

cout<



口胡 NOIP2011DAY1 選擇客棧

乙個長度為 n 的區間,每個位置上有顏色 ci 以及代價 vi,現在問有多少個區間 l,r 滿足 cl cr 且 l i r 使得v i p 我們只考慮每乙個點作為左端點時對答案的貢獻,我們令ne xti 表示在i左邊,離i最近,且vn exti p的那個端點,可以為i本身 那麼i這個端點對答案的貢...

選擇客棧(noip2011 day1 t2)

題目描述 麗江河邊有 n 家很有特色的客棧,客棧按照其位置順序從 1 到 nn n 編號。每家客棧都按照某一種色調進行裝飾 總共 k 種,用整數 0 k 1 表示 且每家客棧都設有一家咖啡店,每家咖啡店均有各自的最低消費。兩位遊客一起去麗江旅遊,他們喜歡相同的色調,又想嘗試兩個不同的客棧,因此決定分...

NOIP2011 提高組Day 1題解

總結 第一天的三道題除了第三題 長度有點超過我的接受範圍之外,一二題難度還是比較適中滴,只可惜第二題我打的暴力忘了小小的優化一下,結果沒得全分,有點難過了。這道題的思路就是輸入過後倒著尋找符合條件的地毯,因為越後放的地毯在越上面 這道題我們先列舉第二個客棧的位置,然後去倒推第乙個客棧的位置。當時做這...