JZOJ 4 1 B組 無限序列

2021-07-29 22:39:33 字數 1111 閱讀 7678

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分鐘再回來...