HDU 5621 KK's Point (组合数学)

来源:互联网 发布:网站入侵数据更改高手 编辑:程序博客网 时间:2024/05/21 14:56

KK's Point

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 1142    Accepted Submission(s): 374


Problem Description
Our lovely KK has a difficult mathematical problem:He points N(2N105) points on a circle,there are all different.Now he's going to connect the N points with each other(There are no three lines in the circle to hand over a point.).KK wants to know how many points are there in the picture(Including the dots of boundary).
 

Input
The first line of the input file contains an integer T(1T10), which indicates the number of test cases.

For each test case, there are one lines,includes a integer N(2N105),indicating the number of dots of the polygon.
 

Output
For each test case, there are one lines,includes a integer,indicating the number of the dots.
 

Sample Input
234
 

Sample Output
35
 

Source
BestCoder Round #71 (div.2)
 

Recommend
hujie   |   We have carefully selected several similar problems for you:  5689 5688 5687 5686 5685 
题意:在圆上有n个点,问最多有多少个交点(包括圆上的点),
思路:每四个点会有1个交点,所以也就转换为了组合数学中的知识,c(n,4),但要注意的时,数据太大,用__int64  也会超,要用到unsigned (虽然知道有这个数据类型,但一直没用过)。。。。
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;unsigned __int64 k,i,j,t,n;int main(){scanf("%I64u",&t);while(t--){scanf("%I64u",&n);k=n;if(n>=4)k=k+n*(n-1)/2*(n-2)/3*(n-3)/4;printf("%I64u\n",k);}return 0;}


 
0 0
原创粉丝点击