码迷,mamicode.com
首页 > 其他好文 > 详细

HUST_ACdream区域赛指导赛之手速赛系列(1)(2)D——数学——Triangles

时间:2015-04-17 13:17:05      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:

Description

已知一个圆的圆周被  个点分成了 N 段等长圆弧,求任意取三个点,组成锐角三角形的个数。

Input

多组数据。

每组数据一个N (N ≤  1000000)。

Output

对于每组数据,输出不同锐角三角形的个数。

Sample Input

3
4
5

Sample Output

1
0
5
大意:数学推导,分成奇数点偶数点讨论
偶数时:
技术分享
技术分享
只要两个相减就是答案
奇数时同理:
技术分享
还有1ll*涨姿势用来变成long long 形式
技术分享
#include<cstdio>
#include<cstring>
int main()
{
    long long n;
    while(~scanf("%lld",&n)){
        if(n % 2 == 1){
            long long temp1 = 1ll*n*(n-1)*(n-2)/6;
            long long temp2 = 1ll*n*(n-1)*(n-3)/8;
            printf("%lld\n",1ll*(temp1 - temp2));
        }
        else {
            long long temp1 = 1ll*n*(n-1)*(n-2)/6;
            long long temp2 = 1ll*n*n*(n-2)/8;
            printf("%lld\n",1ll*(temp1 - temp2));
        }
    }
   return 0;
} 
View Code

 



 

HUST_ACdream区域赛指导赛之手速赛系列(1)(2)D——数学——Triangles

标签:

原文地址:http://www.cnblogs.com/zero-begin/p/4434384.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!