description
我們按以下方式產生序列:
1、 開始時序列是: 「1」 ; 2、 每一次變化把序列中的 「1」 變成 「10」 ,」0」 變成 「1」。 經過無限次變化,我們得到序列」1011010110110101101…」。 總共有 q 個詢問,每次詢問為:在區間a和b之間有多少個1。 任務:寫乙個程式回答q個詢問
input
第一行為乙個整數q,後面有q行,每行兩個數用空格隔開的整數a, b。
output
共q行,每行乙個回答
sample input
2 8sample output
data constraint
【資料範圍】 1 <= q <= 5000
1 <= a <= b < 2^63
一種類似於斐波那契的東西
先用乙個z來存字首和
再求這個數列包含多少個1
**如下:
var n,i:longint;
x,y:int64;
z:array[-1..91] of int64;
function
find
(l:int64;k:longint):int64;
begin
if l=0
then
exit(0);
find:=0;
if l=z[k] then find:=z[k-1]else
if l<=z[k-1] then find:=find(l,k-1) else find:=z[k-2]+find(l-z[k-1],k-2);
end;
begin
readln(n);
z[0]:=1;
z[1]:=1;
for i:=2
to91
do z[i]:=z[i-1]+z[i-2];
for i:=1
to n do
begin
read(x,y);
writeln(find(y,91)-find(x-1,91));
end;
end.
JZOJ 4 1 B組 無限序列
description 我們按以下方式產生序列 1 開始時序列是 1 2 每一次變化把序列中的 1 變成 10 0 變成 1 經過無限次變化,我們得到序列 1011010110110101101 總共有 q 個詢問,每次詢問為 在區間a和b之間有多少個1。任務 寫乙個程式回答q個詢問 input 第...
JZOJ 4 1 C組 飛越原野 bfs
description 勇敢的德魯伊法里奧出色的完成了任務之後,正在迅速的向自己的基地撤退。但由於後面有著一大群追兵,所以法里奧要盡快地返回基地,否則就會被敵人捉住。終於,法里奧來到了最後一站 泰拉希爾原野,穿過這裡就可以回到基地了。然而,敵人依然緊追不捨。不過,泰拉希爾的地理條件對法里奧十分有利,...
JZOJ 11 14 提高B組反思
題目雖然有點高大上,但是很容易懂 有乙個 d 維空間,同時有乙個長度為 2n 的操作序列,每個操作往某一維的正方向或反方向走一格,問多少種方案使得最後走回原點 由於資料的 d 前 75 給的很明顯,分別是1 2 3 一開始想找全部資料的規律,沒找到 就先放在一邊,去搞後面幾題 最後還有30分鐘再回來...