51 nod 1491 黃金系統 貢獻

2021-08-08 23:27:48 字數 1235 閱讀 1636

1491 **系統

codeforces

基準時間限制:1 秒 空間限制:131072 kb 分值: 40 

難度:4級演算法題

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示例

00100

11

output示例

=
解:列舉幾項就可以發現是斐波那契數列,但是不能直接相加比較,所以將他們的貢獻值轉化為最高位上 即可以比較大小

既然給出了斐波那契的數列 那麼一定是要用到他的性質 f[i]=f[i-1]+f[i-2],即將11轉化為100

注意細節 1111->10011->10100 注意暴力的姿勢要好(即判斷是否滿足條件 滿足-> j-=2 否則break)

#include #include #include #include #include using namespace std;

const int n = 1e5+10;

typedef long long ll;

char s1[n], s2[n];

int solve(char str,int len)

if(str[i]=='\0') break;}}

else i=len;

for(i=i-1; i>=0; i--)

if(str[i]!='0') break;

str[++i]='\0';

reverse(str,str+i);

str[i]='\0';

return flag==1;

}int main()

else if(s1[i]');

return 0;

}

51Nod 1491 黃金系統

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

黃金系統 51Nod 1419

可以發現q 3 q 2 q 就是個斐波那契數列 和之前做過的1946很像 於是就玄學暴力 各種t。看完題解 覺得很智障。既然是比較兩個數 直接處理兩數之差就好了 具體細節參考上面部落格 include using namespace std typedef long long ll const in...

1491 黃金系統 思維題

q 5 12 在 系統下面a0 a1.an 等於 ni 0ai qn i 其中 ai 是0或者1。現在給出兩個 系統下面的數字,請比較他們的大小。input 單組測試資料。第一行有乙個字串a。第二行有乙個字串b。按照a0到an的順序輸入。他們都是非空串,可能有前導0,並且只有0和1組成,長度不超過1...