題目:blah數集
就一開始來說,我們有乙個元素a,我們要把2*a+1和3*a+1加入數集裡
注意:這裡說的是集合,也就是說裡面沒有重複的元素,因此我們需要去重
這裡用了雙指標的思想:
建立兩個佇列q1,q2來分別儲存兩種方式生成的元素
建立兩個指標i,j分別指向兩個隊的隊頭
比較指標指著的兩個數,a記錄較小數
使用a的那個進行生成,然後將其去掉(出隊)
如果兩個數相同,那麼任意取乙個生成,然後兩個都要出隊排名統計+1
重複3-6直到排名統計到達邊界(k輸出
#include#include#includeusing namespace std;
int a,n;
int main()
else
}} cout<} return 0;
}
Blah數集(雙指標單調佇列)
描述 大數學家高斯小時候偶然間發現一種有趣的自然數集合blah,對於以a為基的集合ba定義如下 1 a是集合ba的基,且a是ba的第乙個元素 2 如果x在集合ba中,則2x 1和3x 1也都在集合ba中 3 沒有其他元素在集合ba中了。現在小高斯想知道如果將集合ba中元素按照公升序排列,第n個元素會...
複習題之Blah數集
題目描述 大數學家高斯小時候偶然間發現一種有趣的自然數集合blah,對於已a為基的集合ba定義如下 1 a是集合ba的基,且a是ba的第乙個元素 2 如果x在集合ba中,則2x 1,3x 1也都在集合ba中 3 沒有其他元素在集合ba中了。現在小高斯想知道如果將集合ba中的元素按照公升序排列,第n個...
Blah數集(資訊學奧賽一本通 T1333)
題目描述 大數學家高斯小時候偶然間發現一種有趣的自然數集合 blah,對於以 a 為基的集合 ba 定義如下 a 是集合 ba 的基,且 a 是 ba 的第乙個元素 如果 x 在集合 ba 中,則 2x 1 和 3x 1 也都在集合 ba 中 沒有其他元素在集合 ba 中了。現在小高斯想知道如果將集...