ACDream 1067 Triangles
2016-08-13 15:21
239 查看
Triangles
Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others)
Submit Statistic Next Problem
Problem Description
已知一个圆的圆周被 N 个点分成了 N 段等长圆弧,求任意取三个点,组成锐角三角形的个数。
Input
多组数据。
每组数据一个N (N ≤ 1000000)。
Output
对于每组数据,输出不同锐角三角形的个数。
Sample Input
3
4
5
Sample Output
1
0
5
分析:我们可以两种点,一种偶数,一种奇数。
偶数时:
把每一个点分一个点,从1,2,3.。。。。,k,k+1……2k,点A我们假设分在1,那么在区间[2-k-2][k+1-2k],分别分有B,C,由于需要组成锐角三角形,所以我们不能在一个区间分两个点,且不能有点在k上,因为那会和A组成半径。切B-C的距离要比k值小。那么就有S = 0 + 1 + 2 + … + (k - 2) = (k -1) * (k -2) /2 = (N/2 - 1) * (N / 2 - 2) / 2 ,由于有n个点且每个点重复计算三次,s=s*n/3。
奇数时:
同上,k=n/2,,0,1,2,3,4,5……k…k+1…2k。A点在0,B,C区间分为[1-k],[k+1,2k],B-C<=k时满足锐角,S = k + (k- 1) + … + 1 = k * (k +1) /2 = (N/2) * (N / 2 + 1) / 2 ;,——->s=s*n/3;
Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others)
Submit Statistic Next Problem
Problem Description
已知一个圆的圆周被 N 个点分成了 N 段等长圆弧,求任意取三个点,组成锐角三角形的个数。
Input
多组数据。
每组数据一个N (N ≤ 1000000)。
Output
对于每组数据,输出不同锐角三角形的个数。
Sample Input
3
4
5
Sample Output
1
0
5
分析:我们可以两种点,一种偶数,一种奇数。
偶数时:
把每一个点分一个点,从1,2,3.。。。。,k,k+1……2k,点A我们假设分在1,那么在区间[2-k-2][k+1-2k],分别分有B,C,由于需要组成锐角三角形,所以我们不能在一个区间分两个点,且不能有点在k上,因为那会和A组成半径。切B-C的距离要比k值小。那么就有S = 0 + 1 + 2 + … + (k - 2) = (k -1) * (k -2) /2 = (N/2 - 1) * (N / 2 - 2) / 2 ,由于有n个点且每个点重复计算三次,s=s*n/3。
奇数时:
同上,k=n/2,,0,1,2,3,4,5……k…k+1…2k。A点在0,B,C区间分为[1-k],[k+1,2k],B-C<=k时满足锐角,S = k + (k- 1) + … + 1 = k * (k +1) /2 = (N/2) * (N / 2 + 1) / 2 ;,——->s=s*n/3;
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> using namespace std; //N 为偶数时, ans = N * (N/2 - 1) * (N / 2 - 2) / 6; //N为奇数时, ans = N * (N/2) * (N / 2 + 1) / 6; int main() { long long n,s; while(scanf("%lld",&n)!=EOF) { if(n<3) printf("0\n"); if(n%2==0) s=n*(n/2-1)*(n/2-2)/6; else s=n*(n/2)*(n/2+1)/6; printf("%lld\n",s); } return 0; }
相关文章推荐
- ACdream 1067:Triangles
- ACdream 1067:Triangles
- ACdream 1067:Triangles
- acdream 1067 Triangles (结论)
- HUST_ACdream区域赛指导赛之手速赛系列(1)(2)D——数学——Triangles
- 数学推导——ACdream 1067
- ACDream 1024:Triangles
- mysql 启动时出现1067错误,进程意外终止。
- 在 本地计算机 无法启动mysql服务 错误1067:进程意外中止
- Bezier Triangles and N-Patches
- Windows下MySQL5服务无法启动,错误代号1067
- MySql 出现1067错误的解决
- MySQL不能启动服务1067错误
- WINDOWS下更改MYSQL数据路径(datadir)后服务启动碰到1067问题及解决
- 关于MySQL的1067错误解决方法
- 错误1067进程意外终止
- php - zoj 1067 Color Me Less
- Mysql 1067错误
- mysql 启动1067错误 解决了
- poj 1067 取石子游戏