待修改莫隊裸題。。。
當莫隊有修改操作時,只要記錄每個詢問的時間,在兩次詢問之間修改就可以了。
可以證明時間複雜度是o(n^(5/3))的
具體看**。
**:
1 #include2 #include3 #include4 #include5 #include6using
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還沒有學過程式設計,且覺得頭腦風暴太浪費腦力了,所以向你來尋求幫助。輸入檔案第一...