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