模擬 無限序列

2022-09-09 05:15:10 字數 1014 閱讀 8483

題目描述

我們按以下方式產生序列:

1、 開始時序列是: 「1」 ;

2、 每一次變化把序列中的 「1」 變成 「10」 ,「0」 變成 「1」。

經過無限次變化,我們得到序列"1011010110110101101…"。

總共有 q 個詢問,每次詢問為:在區間a和b之間有多少個1。

任務

寫乙個程式回答q個詢問

輸入

第一行為乙個整數q,後面有q行,每行兩個數用空格隔開的整數a, b。

輸出

共q行,每行乙個回答

輸入樣例

12 8

輸出樣例

4說明

1 <= q <= 5000

1 <= a <= b < 263

解析

當為第乙個序列時,『1』的個數為1;當為第二個序列時,『1』的個數為1;當為第三個序列時,『1』的個數為2;當為第四個序列時,『1』的個數為3;當為第五個序列時,『1』的個數為5……

發現沒,『1』的個數就與n(n為第幾個序列)的斐波那契數列相同。而且題目是剛好只用算到斐波那契數列的第九十二項。沒超出 long long 型別。

注意事項

要定 long long 型別,斐波那契數列算到第九十二項就可以了。

ac完整程式

#include#includeusing namespace std;

long long n,a,b,f[310],m;

long long czadd(long long l)

return m;

}int main()

return 0;

}

2018 3 17 模擬賽 1 無限序列

我們按以下方式產生序列 1 開始時序列是 1 2 每一次變化把序列中的 1 變成 10 0 變成 1 經過無限次變化,我們得到序列 1011010110110101101 然後詢問q次,求a到b之間1的個數 首先,觀察一波 序列的變化為 1 10 101 10110 10110101 然後,我們發現...

點聲源模擬無限大障板活塞輻射 求空間指向型

點聲源疊加模擬無限大障板活塞輻射 求指向型 圓形活塞所以使用極座標進行計算 只是為求指向型 可以忽略常係數 周長2 pi r隨r擴充套件 所以針對不同半徑 點聲源個數與r成線性關係 數值求解與解析公式作圖對比 將平面指向型轉化為空間指向型 據我所知 matlab中無之間繪製球座標函式 於是轉化為直角...

8 12 無限序列 1861

我們按以下方式產生序列 1 開始時序列是 1 2 每一次變化把序列中的 1 變成 10 0 變成 1 經過無限次變化,我們得到序列 1011010110110101101 總共有 q 個詢問,每次詢問為 在區間a和b之間有多少個1。任務 寫乙個程式回答q個詢問 輸入 第一行為乙個整數q,後面有q行,...