阿里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;
}



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

相关推荐

流岚噗噗:肯定直接说第一啊,网上的身份都是自己给的好吧
点赞 评论 收藏
分享
#96年28岁其实挺小的#还没到28岁,不过也快了。没想到时间过得这么快,遥想大学毕业时我才23岁,读了个研,26了大学时我是一个风风火火的人,有想法&nbsp;有干劲&nbsp;有活力的人,觉得未来充满无限可能。我参加了很多的活动,也亲自作为负责人举办了全校规模的比赛,我体验了非常多不一样的事情,曾一度在一个星期内走遍了学校所有的男生宿舍去推销宣传产品,去校外拉赞助,谈''合作''&nbsp;锻炼了自己的口才,增长了自己的见识。现在想想,这些事好多都挺幼稚。但那个时候是我火一般的岁月,每天都充满激情。大学时不爱上课,所以文化课学的不怎么样,当时对这件事有遗憾,我没有高中时静心学习的能力了。后来,我想静...
大祥老师永远的0:徐霞客那一章作为七本书的尾声确实点睛之笔。 打开书时,个人的命运令我扼腕,王侯将相的事迹令我心潮澎湃,王朝的兴衰令我哀叹。 合上书后,最受用的还是最后一句话,幡然醒悟过来这些早已是过往云烟,你对它们扼腕、澎湃、哀叹其实轻于鸿毛,正如作者所言“先变成粪,后变成土”,用喜欢的方式度过自己的一生未必就不比书中的一个个名留青史的历史人物活得风采。
点赞 评论 收藏
分享
点赞 4 评论
分享
牛客网
牛客企业服务