HDU 5621 KK's Point(数学+规律题)

KK's Point

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


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

2 3 4
 

Sample Output

3 5
 

Source
BestCoder Round #71 (div.2)
 

Recommend
hujie   |   We have carefully selected several similar problems for you:   5994  5993  5992  5991  5990 

题意:圆上有n个点,任意两点相连,任意三条线不交于1点,问构成的图上有多少点。
思路:一开始画了5个点,6个点,7个点的情况,然后在画图的过程中发现每个四边形都会贡献一个交点,所以就直接Cn4看n个点的图能有多少四边形即可。注意要用unsigned long long不然会爆,且n<4的时候直接输出n即可。

include 
#include 
#include 
#include 
#include 
using namespace std;

int main(){
    
    int t;
    scanf("%d",&t);
    while(t--){
        unsigned long long n;
        scanf("%llu",&n);
        unsigned long long sum=0;
        if(n>=4)
            sum=n*(n-1)/2*(n-2)/3*(n-3)/4+n;
        else
            sum=n;
        printf("%llu\n",sum);
    } 
    return 0;
}


你可能感兴趣的:(算法,ACM)