莫隊演算法。
這道題wa了很多次,猜測可能是跟oj系統有關,有點坑。
**如下:
#include#include#include#includeusing namespace std;
typedef long long ll;
const int maxn=5e4+5;
const int mm=2e6+5;
int block,ans1[maxn],ans2[maxn],a[maxn];
int temp,num[maxn],left,right;//num記錄當前區間內所有種類的襪子的數量,temp記錄當前區間內可取的方案總數,兩者會隨著left,right指標的變化而變化
struct query
q[maxn];
bool cmp(query x,query y)
ll func(ll n,ll m); //計算組合數c(n,m)
void add(int x) //區間擴張,x為襪子的種類
void remove(int x) //區間收縮,原理同上
int main()
sort(q+1,q+1+m,cmp);
left=right=1;
temp=0;
add(a[1]);
for(int i=1;i<=m;i++)
for(int i=1;i<=m;i++)
/**/
return 0;
}ll func(ll n,ll m)
BZOJ2038 小Z的襪子 莫隊
bzoj2038 題意 q 5000 次詢問,問在區間中隨意取兩個值,這兩個值恰好相同的概率是多少?分數表示 感覺自己複述的題意極度抽象,還是原題意有趣 逃 思路 設在l到r這個區間中,x這個值得個數為a個,y這個值的個數為b個,z這個值的個數為c個。那麼答案即為 a a 1 2 b b 1 2 c...
BZOJ 2038 小Z的襪子(莫隊演算法)
莫隊演算法的話,看這個比較好懂 net bossup article details 39236275 不過這裡面的部落格的 貌似有點問題,所以 的話,net lwt36 article details 50583757 這個是對的,看我的也行。什麼時候用莫隊?1 區間不會被修改 2 可以離線 3 ...
BZOJ2038 小Z的襪子(莫隊演算法)
題目 分析 莫隊演算法 莫隊演算法是一種思想 處理問題 不帶修改的區間詢問 使用要求 l 1,r l,r 1 的結果可由 l,r 的答案在o 1 或o logn 的時間內推出 具體步驟 1 對整個區間軸分成根號n塊 2 以l所在的塊的編號為第一關鍵字,r為第二關鍵字給所有詢問排序方便處理 3 對於每...