我們按以下方式產生序列:
1、 開始時序列是: 「1」 ;
2、 每一次變化把序列中的 「1」 變成 「10」 ,「0」 變成 「1」。
經過無限次變化,我們得到序列"1011010110110101101…"。
總共有 q 個詢問,每次詢問為:在區間a和b之間有多少個1。
任務 寫乙個程式回答q個詢問
第一行為乙個整數q,後面有q行,每行兩個數用空格隔開的整數a, b。
共q行,每行乙個回答
1
2 8
4
1 <= q <= 5000
1 <= a <= b < 2^63
首先看那個序列,可以發現它是按照斐波那契數列的形式遞增的
然後我們就可以加入字首和發現:
f [a
,b]=
q[b]
−q[a
−1
]f[a,b]=q[b]-q[a-1]
f[a,b]
=q[b
]−q[
a−1]
然後用遞迴求字首和就好了
#include
#include
using
namespace std;
long
long f[
1005][
2],q;long
long a,b;
long
long
work
(long
long x)
}int
main()
return0;
}
無限序列 斐波那契數列
description 我們按以下方式產生序列 1 開始時序列是 1 2 每一次變化把序列中的 1 變成 10 0 變成 1 經過無限次變化,我們得到序列 1011010110110101101 總共有 q 個詢問,每次詢問為 在區間a和b之間有多少個1。任務 寫乙個程式回答q個詢問 input 第...
斐波那契 字首和 無限序列
有這樣乙個規則 1.把 1 變成 10 2.把 0 變成 1 乙個序列的第一位是 1 然後是 10 101 序列無限次操作後會得到 1011010110110101101 問某乙個區間內有多少個 1 我們按以下方式產生序列 1 開始時序列是 1 2 每一次變化把序列中的 1 變成 10 0 變成 1...
遞迴 斐波那契
題 若一頭小母牛,從出生起第四個年頭開始每年生一頭母牛,按此規律,第n年有多少頭母牛?具體分析 1 分析題目 從出生起第四個年頭開始每年生一頭母牛 時間 年 未成熟母牛 頭 成熟母牛 頭 母牛總數 頭 1 1 0 1 2 1 0 1 3 1 0 1 4 0 1 1 5 1 1 2 6 2 1 3 7...