阿里9.4编程第一题,排列组合

阿里9.4编程第一题,排列组合,只AC了0.9,请各位大佬帮忙看看什么问题
#include <bits/stdc++.h>

using namespace std;

long long c(int n, int k){
    long long tmp = 1;
    for (int i = 0; i < k; ++i) {
        tmp *= n-i;
        tmp /= i+1;
    }

    return tmp;
}

int main() {
//    ios::sync_with_stdio(false);
//    cin.tie(nullptr);
//    cout.tie(nullptr);

    int n;
    cin>>n;
    vector<int> a(4);
    for (int i = 0; i < 4; ++i) {
        cin>>a[i];
    }
    sort(a.begin(), a.end());
    long long res = 1;
    long long t, tmp = n*n;
    for (int i = 0; i < 3; ++i) {
        if(a[i] > 0){
            t = c(tmp, a[i]);
            if(t > 998244353)
                t %= 998244353;
            res *= t;
            tmp -= a[i];
            if(res > 998244353)
                res %= 998244353;
        }
    }

    cout<<res<<endl;

    return 0;
}



#笔试题目##阿里巴巴#
全部评论
是不是要考虑n=10,a/b/c/d=25时的特例?有个老哥直接输出777220564
点赞 回复 分享
发布于 2020-09-04 11:55
阿里现在竟然还有笔试,我还以为秋招都截止了
点赞 回复 分享
发布于 2020-09-04 11:45
听别的大佬说需要:乘法逆元求组合数
点赞 回复 分享
发布于 2020-09-04 11:23
第二题有代码吗
点赞 回复 分享
发布于 2020-09-04 10:52

相关推荐

uu们,拒offer时hr很生气怎么办我哭死
爱睡觉的冰箱哥:人家回收你的offer,或者oc后没给你发offer的时候可不会愧疚你,所以你拒了也没必要愧疚他。
点赞 评论 收藏
分享
Rena1ssanc...:对的,要是面评没太烂,勤更新简历等捞就行了,腾讯可以无限复活
点赞 评论 收藏
分享
评论
点赞
4
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务