【HPU-oj】-Triangles(锐角三角形个数,数学,思维)
2017-02-23 19:27
218 查看
限制: 1 Sec 内存限制: 128 MB
提交: 33 解决: 8
题目描述
已知一个圆的圆周被N个点分成了N段等长圆弧,求任意取三个点,组成锐角三角形的个数。输入
多组数据,每组数据一个N(N <= 1000000)输出
对于每组数据,输出不同锐角三角形的个数。样例输入
3
4
5
样例输出
1
0
5
题解:计算锐角三角形的个数,可以用总的三角形的个数减去直角三角形和钝角三角形的个数即可。
圆的直径为三角形的一边构成的三角形一定是直角三角形。类比,固定直径外一点,那两个点在直径下方(靠近固定点)即为钝角三角形,上方即锐角三角形。
可以这样代数化理解:标记一下圆周上的点,顺时针数为1、2、3……i,逆时针数为1、2、3……j,那么,只要满足i+j<=n/2,就是钝角(直角)三角形。
#include <cstdio> #include <stack> #include <queue> #include <cmath> #include <vector> #include <cstring> #include <algorithm> using namespace std; #define CLR(a,b) memset(a,b,sizeof(a)) #define INF 0x3f3f3f3f #define LL long long int main() { LL n; while(~scanf("%lld",&n)) { LL sum=n*(n-1)*(n-2)/6; //总的三角形个数 LL num=n>>1; num=num*(num-1)/2; //直角,钝角三角形个数 sum-=n*num; //总的减去 n 个点可以构成的直角,钝角三角形个数 printf("%lld\n",sum); } return 0; }
相关文章推荐
- 【HPU-OJ】Divide the pears(数学,思维)
- hpuoj【1190】確率【数学】
- hpuoj-1010-QAQ的序列价值【状压】【数学组合】
- ZZULIOJ/ 郑轻OJ 1895: 985的0-1串难题(数学思维)
- 【hpu oj 1009 QAQ的区间价值 思维】
- hpuoj 【1137】两数的距离【数学】
- 【HPU OJ 1310 】序列的区间操作 【思维】
- 【hpu oj 1015 985的方格难题 [DP、数学] 】 dc29
- [HPU] Triangles [思维]
- hdu 5784 How Many Triangles 计算几何,平面有多少个锐角三角形
- QDUoj GZS的三角形 棋盘里的数学 思维+杨辉三角
- 【hpu oj 1010 QAQ的序列价值 [数学、状态压缩]】
- 【hpu oj 1008 QAQ的矩阵价值 思维】
- 【light-oj】-1189 - Sum of Factorials(思维,数学)
- 一个很好的练数学思维的oj
- Acdreamoj1115(数学思维称号)
- Acdreamoj1115(数学思维题)
- 【HPU 1046 QAQ的数学问题】+ 思维
- 【hpu oj 1018 985的最大和难题 [思维]】
- 【hpu oj 1286: Number of numbers && 南阳 oj 85 有趣的数 && HDU 1597】 [思维]