1 条题解

  • 0
    @ 2026-6-1 11:13:34

    首先我们易求得对角线条数为: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
    上传者