前言
對于一個懶懶的,不想寫高精的人(就是我),每次都會遭遇到答案爆$long$ $long$的危險
比如說這道題:
題目傳送門
最后的$23-25$的兩個點,$long$ $long$甚至$unsigned$ $long$ $long$都無法滿足,難道真的要手打高精度了嗎?
不,我們有$\_$$\_$$int$$128$!
那么這到底是什么 可以吃嗎 ?
關于$\_$$\_$$int$$128$
先來看看一些常見的整數變數能存的范圍與占用的位元組:
| 型別名稱 | 占用位元組 | 存盤范圍 |
| $int$ | $4$ | $-2^{31}$ ~ $2^{31}-1$ |
| $long$ $long$ | $8$ | $-2^{63}$ ~ $2^{63}-1$ |
| $unsigned$ $long$ $long$ | $8$ | $0$ ~ $2^{64}-1$ |
再來看看$\_$$\_$$int$$128$
存盤范圍為$-2^{127}$ ~ $2^{127}-1$,但是占用了$128$位元組
雖然記憶體占的多,但存盤范圍依然多
那么如何使用?
輸入
其實就是把快讀輸入改了一改
__int128 read() { __int128 x=0; char ch=getchar(); while(ch<'0' || ch>'9') ch=getchar(); while('0'<=ch && ch<='9') x=x*10+ch-'0',ch=getchar(); return x; }
...
__int128 n=read();
輸出
其實也是把快輸改了一改
void write(__int128 x) { if(x<0) x=-x,putchar('-'); if(x>9) write(x/10); putchar(x%10+'0'); } __int128 n; n=... write(n);
寫在最后
$\_$$\_$$int$$128$是好,但是用的時候一定一定要注意空間限制!
當然,$\_$$\_$$int$$128$并不能完全取代高精,所以如果$\_$$\_$$int$$128$過不掉時,還是老老實實打高精吧!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/542380.html
標籤:其他
