題目描述
我們按以下方式產生序列:
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行,...