題目鏈結
題目大意:給乙個數列,資磁單點修改和求[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還沒有學過程式設計,且覺得頭腦風暴太浪費腦力了,所以向你來尋求幫助。輸入檔案第一...