直線 int128的使用

2022-09-06 22:48:25 字數 1354 閱讀 5636

題目

平面上存在n(1e15)條直線。請問n條直線在平面上最多存在多少交點。

解法:分析可知資料範圍會爆64位但又在128位以內,使用__int128。

__int128有定義但沒有輸入輸出等操作,需要手寫。

#include#include #include #include #include #include #include #include #include #include #include #include #include #include typedef long long ll ;

#define int ll

#define mod 1000000007

#define gcd __gcd

#define rep(i , j , n) for(int i = j ; i <= n ; i++)

#define red(i , n , j) for(int i = n ; i >= j ; i--)

#define me(x , y) memset(x , y , sizeof(x))

//ll lcm(ll a , ll b)

ll quickpow(ll a , ll b)return ans;}

//int euler1(int x)if(x>1)ans-=ans/x;return ans;}

//const int n = 1e7+9; int vis[n],prime[n],phi[n];int euler2(int n)for(int j=1;j#define fi first

#define se second

#define pb push_back

#define mp make_pair

#define all(v) v.begin(),v.end()

#define size(v) (int)(v.size())

#define lson l,mid,root<<1

#define rson mid+1,r,root<<1|1

using namespace std;

const int maxn = 1e5+9;

const int n = 1e5+1;

inline __int128 read()

ch = getchar();

}while(ch >= '0' && ch <= '9')

return x*f;

}inline void print(__int128 x)

if(x > 9)

putchar(x%10+'0');

}void solve()

signed main()

int128 學習筆記

今天學習到 int128 型別 這是乙個處理大數的很奇妙的方法。正常來說,unsigned long long 已經是可以定義的最大的型別了,但是如果資料範圍超過了2 64 就會 如果要處理比其大一點又不是那麼大的數,就可以使用 int128這個定義。注意 int128 並不是所有編譯器都可以使用。...

組合數學 int128

今天是tabris和mengxiang000來到幼兒園的第3天,mengxiang000接到了乙個布置會場的任務。他需要將貴賓觀眾席的椅子排成一排,一共需要n個。幼兒園只有兩種椅子,所以他也只能使用兩種椅子。a型別和b型別 並且假設每種椅子的數量都是無限的。而其如果想要擺置乙個b型別的椅子,對應就需...

組合數(思維題 int128)

題意很簡單吧 就是算c n,k 和1e18的大小 如果你手寫一下就可以把c n,m 寫成 可以很明顯發現分子最左邊的n k可定小於分母最後邊的n k 1 所以他們能相同約分 然後就有乙個new知識點了!int128這個是只能在計算時使用的資料型別,不能在輸入輸出的時候使用 所以這道題我就可以這樣想 ...