acdream 1067 Triangles (结论)

来源:互联网 发布:如何禁止下载软件 编辑:程序博客网 时间:2024/05/21 07:57

题意:

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

题解:

结论:

n奇数:n*(n/2)*(n/2+1)/6;

n偶数:n*(n/2-1)*(n/2-2)/6;

#include<iostream>#include<math.h>#include<stdio.h>#include<algorithm>#include<string.h>#include<vector>#include<queue>#include<map>#include<set>#define B(x) (1<<(x))using namespace std;typedef long long ll;typedef unsigned long long ull;void cmax(int& a,int b){ if(b>a)a=b; }void cmin(int& a,int b){ if(b<a)a=b; }void cmax(ll& a,ll b){ if(b>a)a=b; }void cmin(ll& a,ll b){ if(b<a)a=b; }void add(int& a,int b,int mod){ a=(a+b)%mod; }void add(ll& a,ll b,ll mod){ a=(a+b)%mod; }const int oo=0x3f3f3f3f;const ll OO=0x3f3f3f3f3f3f3f3f;const ll MOD=1000000007;const int maxn = 105;int main(){    //freopen("E:\\read.txt","r",stdin);    int T;    ll n;    while(scanf("%lld",&n)!=EOF){        if(n&1) printf("%lld\n",n*(n/2)*(n/2+1)/6);        else printf("%lld\n",n*(n/2-1)*(n/2-2)/6);    }    return 0;}


0 0
原创粉丝点击