1 条题解
-
0
C++ :
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; int main() { long long n; //freopen("tri.in","r",stdin); //freopen("tri.out","w",stdout); while(scanf("%lld",&n) != EOF) { long long len = (n - 1 - (n + 1) / 2);//固定任意一点,设这点对应的点为直角或者钝角三角形,则该店对应的圆弧长度至少为(n + 1) / 2,对于某个长度为i的 //其个数为(n - 1 - i),因为圆弧长度为(n + 1) / 2 ... (n - 2) 个数分别为(n - 1 - (n - 2)) + (n - 1 - (n - 3))... //(n - 1 - (n + 1) / 2) ,划开即是1,2,3...(n - 1 - len),等差数列求和,有(len + 1) * len / 2LL,因为圆上N点等价, //所以直或者钝角的个数要*N,总三角形数为C(N , 3),减去N * len * (len + 1) / 2就是结果 long long ans = n * (n - 1) * (n - 2) / 6LL - n * len * (len + 1) / 2LL; printf("%lld\n",ans); } return 0; }
信息
- ID
- 1837
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者