集訓Day5
阿新 • • 發佈:2018-06-18
存在 .com 包含 相同 價值 範圍 轉換成 ima bubuko
生活還得繼續
bzoj3771
題面讓我笑了很長時間
給出 n個物品,價值為別為Xi且各不相同,現在可以取1個、2個或3個,問每種價值和有幾種情況?
*順序不同算一種
很傻逼的一個母函數+容斥,用A(x)表示每種取一個的母函數,B(x)表示每種取兩個,C(x)表示每種取三個
顯然所以對於每種物品價值Xi,A[xi]++,B[2*xi]++,C[3*xi]++
然後就是
然後就是FFT啦
bzoj1101
對於給定的整數a,b和d,有多少正整數對x,y,滿足x<=a,y<=b,並且gcd(x,y)=d
第一行包含一個正整數n,表示一共有n組詢問。(1<=n<= 50000)接下來n行,每行表示一個詢問,每行三個
正整數,分別為a,b,d。(1<=d<=a,b<=50000)
波蘭科技這麽發達的嗎
這麽早的一道莫反題。。。
草稿紙太亂 貼一個黃學長的吧
bzoj4571
看到xor上一個Trie樹
然後每一步轉移其實是用主席樹查找一個區間裏的數
同樣是按照數位一位一位的貪心,因為加了一個x,所以我們考慮對於所有的ai+x與b的按位異或。
假設我們已經處理到b的第i位(轉換成二進制),假設是1(0同理),
那麽我們只需要查找是否存在aj+x使得其二進制第i位數字是0,顯然我們已經處理了前i-1位了,設當前結果是ans,那麽我們需要查找的數的大小就是在區間[ans-x,ans+(1<<i)-1-x],手算一下就知道這個區間裏的數字的第i位加了x後就都是0,
那麽現在我們就是要在a[1]...a[n]中找出是否存在於[ans-x,ans+(1<<i)-1-x]的數字,兩個區間範圍限制,用主席樹模板一套就好了。
集訓Day5