一道 神仙 高精度壓位板子題

2022-05-08 06:30:11 字數 1594 閱讀 5609

同步:

出自1.28的考試

描述如題目所屬

輸入乙個整數 n。

輸出n 的平方根下取整。

輸入範例 1

1
輸出範例 1
1
提示

對於 100%的資料,0首先看標題裡的乙個大大的水我就知道這是一道水題事情不簡單

慢速打了乙個普通的高精度。

後來發現每個點都有1000位。。。。

所以需要壓位,當然,開始我是不會的。兩天後的今天我終於寫了出來!

#include#define ll long long

#define max(a,b) ((a)>(b))?(a):(b)

#define min(a,b) ((a)

#define p 8//要壓的位數

#define carry 100000000//相應的10的p次方 用於進製

using namespace std;

const ll maxn=3005;

const string scarry="100000000";

struct bignum

putchar('\n');

} ll size(void)

friend bignum operator -(bignum a,bignum b)

else jw=0;

}if(jw)

c.siz=len;

return c;

} friend bignum operator*(bignum a,bignum b)

}while(len>0 && c.t[len]==0)len--;

c.siz=len;

return c;

} friend bignum operator/(bignum a,int b)

c.siz=a.siz;

while(c.siz>1&&c.t[c.siz]==0)c.siz--;

return c;

} friend bool operator ==(bignum a,bignum b)

for(ll i=1;i<=a.siz;++i)

}return 1;

} friend bool operator

}return 0;

} friend bool operator <=(bignum a,bignum b)

friend bool operator >(bignum a,bignum b)

for(ll i=a.size();i>=1;--i)

if(a.t[i]=(bignum a,bignum b)

else

} ans.print();

return 0;

}

居然有兩百多行。

功能全面(bushi),除了沒有高精度÷高精度。。。

寫出來之後一直wa,對拍都拍不出問題。。。

結果發現是交錯題了(捂臉)

壓位高精度模板

原先是整型陣列每個元素存1個數字,壓位高精是每位存8個數字,這樣可以加速8唄,空間也減小了。可謂是對整形陣列的充分利用。include include include include include include include include include include include in...

壓位高精度模板

不走程式,直接上板子。第乙個板子壓四位,支援帶符號的加減乘。第二個板子壓九位,支援不帶符號的四則運算和取模。都封裝了。include include include using namespace std struct intx bool operator const intx b const bo...

壓位高精度的寫法

2020 06 10 修正 html 原始碼 2021 12 25 發現這篇隨筆閱讀量破千了,二次修正 html 原始碼,並做了相關補充 壓位高精度的寫法 對於單位高精度演算法,那麼有沒有可以加速 節省空間的做法呢?顯然是有的。以前,存數字陣列裡面只存著乙個數字,所以加減都是一位一位地加,進製也是一...