題目
平面上存在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這個是只能在計算時使用的資料型別,不能在輸入輸出的時候使用 所以這道題我就可以這樣想 ...