2120 數顏色 2453 維護佇列

2021-08-01 21:31:08 字數 1283 閱讀 7305

題目鏈結

題目大意:給乙個數列,資磁單點修改和求[l,r]中不同數字個數

題解:正解:分塊或帶修莫隊或者主席樹。離散化暴力跑的飛快……

暴力:……

分塊:pre

[i] 表示前乙個和i相同顏色的球的所在位置 詢問[

l,r]

中有多少個不同的數等價於[l

,r] 中有多少個pr

e[i]

塊內按pre

[i] 排序,類似教主的魔法那題

留坑待填……

我的收穫:勁勁勁

#include 

#include

using

namespace

std;

int n,m,tot,t;

int mp[1001005],f[11005],a[11005];

int id(int x)

int query(int l,int r)

void work()

}void init()

int main()

分塊

#include 

#include

#include

#include

#include

using namespace std;

#define m 10005

#define opes for(int i=l;i<=r;i++)

#define opel for(int i=l;i<=min(pos[l]*blo,r);i++)

#define oper for(int i=(pos[r]-1)*blo+1;i<=r;i++)

#define opea for(int i=pos[l]+1;i<=pos[r]-1;i++)

int n,q,num,blo;

int a[m],pos[m],pre[m],b[m],last[1000005];//pre[i]為原陣列,b[i]為排序後陣列

int find(int

x,int v)

void reset(int

x)int query(int l,int r)

void updata(int

x,int v)//暴力修改

}void work()

}void init()

for(int i=1;i<=num;i++) reset(i);

}int main()

bzoj 2453 維護佇列

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

BZOJ 2453 維護佇列

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

bzoj2453 維護佇列

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