hdu 5621 KK's Point(数学,推理题)

题解:

在圆上点三个点时,除圆上三个交点外,圆内没有交点;在圆上点四个点时,除圆上四个交点外,圆内出现了一个交点,因此,在N个点中每四个点便可以在圆内产生一个交点,因此N个点在圆内形成的点的个数为CN4,总的交点数就是CN4+N

 1 #pragma comment(linker, "/STACK:1024000000,1024000000")
 2 #include<iostream>
 3 #include<cstdio>
 4 #include<cstring>
 5 #include<cmath>
 6 #include<math.h>
 7 #include<algorithm>
 8 #include<queue>
 9 #include<set>
10 #include<bitset>
11 #include<map>
12 #include<vector>
13 #include<stdlib.h>
14 using namespace std;
15 #define ull unsigned long long int
16 #define eps 1e-10
17 #define MOD 1000000007
18 #define N 1000000
19 #define inf 1e12
20 ull n;
21 int main()
22 {
23     int t;
24     scanf("%d",&t);
25     while(t--){
26         scanf("%I64u",&n);
27         ull ans=0;
28         if(n>=4)
29            ans=ans+n*(n-1)/2*(n-2)/3*(n-3)/4;
30         ans+=n;
31         printf("%I64u
",ans);
32     }
33     return 0;
34 }
View Code
原文地址:https://www.cnblogs.com/UniqueColor/p/5184863.html