1 条题解
-
0
首先我们易求得对角线条数为:n*(n-3)/2,在经过一些排列组合的技巧,就可以得出。即n*(n-1)(n-2)(n-3)/24,看了一眼数据范围,大约估摸比long long大了几位,本准备打一波高精,但突然想起了unsigned long long,于是用计算器算了一下100000的答案,发现正好在范围里面,于是我就打程序。其中有一个小细节,如果按照原来的公式光乘法就会爆范围的,于是就换一种形式:n*(n-1)/2*(n-2)/3*(n-3)/4,这样就可以过了。
#include<cstdio> #include<iostream> using namespace std; int main() { unsigned long long n; cin>>n; cout<<(n*(n-1)/2*(n-2)/3*(n-3)/4)<<endl; return 0; }
- 1
信息
- ID
- 27
- 提交时间
- 1000ms
- 内存
- 256MiB
- 难度
- 2
- 标签
- 递交数
- 28
- 已通过
- 8
- 上传者
冀公网安备13098402000493号