1491 **系統
codeforces
基準時間限制:1 秒 空間限制:131072 kb 分值: 40
難度:4級演算法題
q=5√
+12,
在**系統下面a0
a1..
.an
等於 ∑ni
=0ai
∗qn−
i
,其中 ai
是0或者1。
現在給出兩個**系統下面的數字,請比較他們的大小。
input
單組測試資料。output第一行有乙個字串a。
第二行有乙個字串b。
按照a0到an的順序輸入。
他們都是非空串,可能有前導0,並且只有0和1組成,長度不超過100000。
如果a>b,輸出》;output示例如果a=b,輸出=;
如果ainput示例
00100
11
=解:列舉幾項就可以發現是斐波那契數列,但是不能直接相加比較,所以將他們的貢獻值轉化為最高位上 即可以比較大小
既然給出了斐波那契的數列 那麼一定是要用到他的性質 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...