BZOJ2743 [HEOI2012]采花 【离线 + 树状数组】
題目
蕭蕓斕是Z國的公主,平時的一大愛好是采花。
今天天氣晴朗,陽光明媚,公主清晨便去了皇宮中新建的花園采花?;▓@足夠大,容納了n朵花,花有c種顏色(用整數1-c表示),且花是排成一排的,以便于公主采花。公主每次采花后會統計采到的花的顏色數,顏色數越多她會越高興!同時,她有一癖好,她不允許最后自己采到的花中,某一顏色的花只有一朵。為此,公主每采一朵花,要么此前已采到此顏色的花,要么有相當正確的直覺告訴她,她必能再次采到此顏色的花。由于時間關系,公主只能走過花園連續的一段進行采花,便讓女仆福涵潔安排行程。福涵潔綜合各種因素擬定了m個行程,然后一一向你詢問公主能采到多少朵花(她知道你是編程高手,定能快速給出答案!),最后會選擇令公主最高興的行程(為了拿到更多獎金!)。
輸入格式
第一行四個空格隔開的整數n、c以及m。接下來一行n個空格隔開的整數,每個數在[1, c]間,第i個數表示第i朵花的顏色。接下來m行每行兩個空格隔開的整數l和r(l ≤ r),表示女仆安排的行程為公主經過第l到第r朵花進行采花。
輸出格式
共m行,每行一個整數,第i個數表示公主在女仆的第i個行程中能采到的花的顏色數。
輸入樣例
5 3 5
1 2 2 3 1
1 5
1 2
2 2
2 3
3 5
輸出樣例
2
0 0 1 0
【樣例說明】
詢問[1, 5]:公主采顏色為1和2的花,由于顏色3的花只有一朵,公主不采;詢問[1, 2]:顏色1和顏色2的花均只有一朵,公主不采;
詢問[2, 2]:顏色2的花只有一朵,公主不采;
詢問[2, 3]:由于顏色2的花有兩朵,公主采顏色2的花;
詢問[3, 5]:顏色1、2、3的花各一朵,公主不采。
提示
【數據范圍】
對于100%的數據,1 ≤ n ≤ 10^6,c ≤ n,m ≤10^6。
題解
考慮離線,按左端點排序
每種顏色只產生一個貢獻而且必須有兩個
那么我們在每種顏色第二次出現的地方+1
然后從左開始掃,每到一個顏色就對該顏色next的位置-1,next的next位置+1,順便算出以當前位置為左端點的答案
轉載于:https://www.cnblogs.com/Mychael/p/8282719.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的BZOJ2743 [HEOI2012]采花 【离线 + 树状数组】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hystrix源码小贴士之Yammer
- 下一篇: dev gridcontrol简单的动态