有兩個操作,1操作,對於x,y區間內的值全部加1。2操作,求出第一次復讀y次跟最後乙個復讀y次的復讀機次數。
a存復讀機原陣列,b存分塊陣列,對於分塊陣列每個進行排序操作,使區間有序,每次查詢對於第乙個區間查詢到最後乙個區間,進行二分查詢。
更新時則對兩個區間都進行更新。也可對a更新後再對b賦值。
#include #include #include #include #include using namespace std;
const int m=5e5+100;
long long a[m],b[m];
long long n,num,b,l[m],r[m],lazy[m],belong[m],youxu[m],m;
void build()
r[num]=n;
for(int i=1; i<=num; i++)
}}void pushdown(int i)
lazy[i]=0;
}}void update(int st,int ed,long long x)
int t=belong[st];
youxu[t]=0;
for(int i=l[t]; i<=r[t]; i++)
}else //不在乙個區間內
for(int i=l[b_st]; i<=r[b_st]; i++)
for(b_st++; b_st=xx&&a[l[i]]<=xx)
}break;}}
}}
if(f1==0)
return -1;
for(j=num; j>=i; j--)
if(a[r[j]]>=xx&&a[l[j]]<=xx)
}break;}}
}return 0;
}int main()
else
}//return 0;
}return 0;
}
商店 分塊 二分
題目描述 從前有乙個奇怪的商店,一共售賣k種物品,第i種物品的初始 為i。但是這商店有個很奇怪的規矩,就是你每次購買一樣物品之後,這種物品的 都會在當前基礎上翻一倍。現在我們想要用最少的錢從裡面買n樣物品,不限購買的物品種數和每種物品購買的次數,請求出若這樣做,所買到的最貴的物品的 由於這個數字可能...
nefu500(二分,最大流)
problem a time limit 3000ms memory limit 65536k 在這個資訊化的時代,網購成為了最流行的購物方式,比起在大街上,頂著烈日尋找需要的商品,大多數人更願意坐在家裡,點選下滑鼠,來找到喜歡的商品,並完成購物。儘管網購還有很多安全問題,但是接受網購的人還是越來越...
分塊 二分 BZOJ 3343
time limit 10 sec memory limit 256 mb submit 1312 solved 585 submit status discuss 教主最近學會了一種神奇的魔法,能夠使人長高。於是他準備演示給xmyz資訊組每個英雄看。於是n個英雄們又一次聚集在了一起,這次他們排成了...