1491 黃金系統 思維題

2021-08-11 04:32:42 字數 1464 閱讀 3482

q=5

√+12

在**系統下面a0

a1..

.an

等於 ∑ni

=0ai

∗qn−

i

,其中 ai

是0或者1。

現在給出兩個**系統下面的數字,請比較他們的大小。

input

單組測試資料。

第一行有乙個字串a。

第二行有乙個字串b。

按照a0到an的順序輸入。

他們都是非空串,可能有前導0,並且只有0和1組成,長度不超過100000。

output

如果a>b,輸出》;

如果a=b,輸出=;

如果ainput示例

00100q=

5√+1

2這個q肯定不是白給的,在公式中我們要用到q的二次方,q的三次方等等

我們嘗試著手動求一下

q的二次方= 計算一下 = q+1

q3=q*(q2)=q2+q1

q4=q*(q3)=q3+q2

我們會發現第i項是第i-1項加上第i-2項。

我們的ab除了0就是1.

我們會發現如果字元011 等同於 0*q(i ) + 1 *q(i-1) + 1*q(i-2)

而這個公式根據上面的推導,就是 1*q(i) + 0*q(i-1)+0*q(i-2)

所以我們就是不停地這樣堆,形成乙個新的字串,進行比較。

00100 和11

11=100

對比00100和100 相同(忽略前置0),所以=

1000 和111

111 = 100 1 (011化為100)

1000 和1001 相比小於

110 和101

110 = 1000

1000和0101 小於

11和10

11 = 100

10 = 010

大於#include#include#include#includeusing namespace std;

char a[100006];

char b[100006];

int main()

else break;}}

for(int i=0;i<=lenb;i++)

else break;}}

cout<=lenb)

if(flag==1)printf(">");

else

if(a[i]");

if(flag==2)printf("<");

}printf("\n");

}else

if(flag==1)printf("<");

else

if(a[j]");

if(flag==2)printf("<");

}printf("\n");}}

}

51Nod 1491 黃金系統

acm模版 拿到這種題,不用多想,先列舉一些q i,可以發現在某種程度上其符合斐波那契數列 q 0用a表示,q 1用b表示,我們可以發現,每乙個數都可以用xa yb表示,而這裡的x和y在一定程度上都符合斐波那契數列。這也就給了我初始的想法,能否遍歷一遍,遇見連續兩位都是1的時候就減去這兩個1繼而在高...

51 nod 1491 黃金系統 貢獻

1491 系統 codeforces 基準時間限制 1 秒 空間限制 131072 kb 分值 40 難度 4級演算法題 q 5 12,在 系統下面a0 a1.an 等於 ni 0ai qn i 其中 ai 是0或者1。現在給出兩個 系統下面的數字,請比較他們的大小。input 單組測試資料。第一行...

一 黃金思維圈

思維圈真的非常重要,也是每個人應該內化的思維模型。人是一種很奇怪的東西,做什麼事情都會追問意義,尤其是長期堅持做一件事情,必然要搞清楚堅持的意義,否則肯定是堅持不下去,最好的堅持,必然是想清楚了堅持的理由 努力的方向。看的越清,行動就越堅定 有力。ted演講者simon sinek在 偉大的領袖如何...