N个点中任意选取四个点,就能产生一个圆内的交点,所以圆内总共有C(N,4)个交点,圆上有N个,相加就可以了。
注意:组合数运算的时候会爆longlong,中间先除一下就可以了。
#include <stdio.h>
#include <algorithm>
#include <string.h>
#include <queue>
#include <stack>
#include <map>
#include <vector>
using namespace std; long long n; int main()
{
int T;
scanf("%d", &T);
while (T--)
{
scanf("%lld", &n);
long long ans1 = n*(n - );
long long ans2 = (n - )*(n - ); ans1 = ans1 / ;
ans2 = ans2 / ; if (ans1 % == ) ans1 = ans1 / ;
else ans2 = ans2 / ; if (ans1 % == ) ans1 = ans1 / ;
else ans2 = ans2 / ; printf("%lld\n", ans1*ans2 + n); }
return ;
}