bzoj2120 2453 帶修改莫隊

2021-08-01 16:46:24 字數 869 閱讀 5098

待修改莫隊裸題。。。

當莫隊有修改操作時,只要記錄每個詢問的時間,在兩次詢問之間修改就可以了。

可以證明時間複雜度是o(n^(5/3))的

具體看**。

**:

1 #include2 #include3 #include4 #include5 #include6

using

namespace

std;

7#define n 10010

8#define m 1000010

9struct

qa[n];

12struct

uw[n];

15int

x,y,i,j,k,n,m,p,l,r,res,cnt,b[n],s,c[m],a[n],ans[n],l[m];

16char s[2

];17

bool

b[n];

18 inline bool

cmp(q x,q y)

22 inline void update1(int

x)26 inline void update2(int

x)30 inline void update(int x,int

y)else a[x]=y;36}

37int

main()

44 sort(a+1,a+cnt+1

,cmp);

45for(i=l=1,r=0;i<=cnt;i++)

54for(i=1;i<=cnt;i++)printf("

%d\n

",ans[i]);

55return0;

56 }

bzoj2120 2453 帶修改莫隊

待修改莫隊裸題。當莫隊有修改操作時,只要記錄每個詢問的時間,在兩次詢問之間修改就可以了。可以證明時間複雜度是o n 5 3 的 具體看 1 include2 include3 include4 include5 include6 using namespace std 7 define n 1001...

BZOJ 2120 帶修改莫隊

簡略題意 單點修改,區間查詢不同顏色個數。帶修改莫隊的板題,學習了乙個。和普通莫隊的區別在於塊的大小需要設定為n2 3,這樣可以確保複雜度為o n3 5 每次詢問之前需要把在當前時間點之前的所有修改用上,這之後的所有修改刪掉。define others ifdef poj include inclu...

演算法複習 帶修改莫隊 bzoj2453

你小時候玩過彈珠嗎?小朋友a有一些彈珠,a喜歡把它們排成佇列,從左到右編號為1到n。為了整個佇列鮮豔美觀,小朋友想知道某一段連續彈珠中,不同顏色的彈珠有多少。當然,a有時候會依據個人喜好,替換佇列中某個彈珠的顏色。但是a還沒有學過程式設計,且覺得頭腦風暴太浪費腦力了,所以向你來尋求幫助。輸入檔案第一...