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

相关推荐

Noob1024:一笔传三代,人走笔还在
点赞 评论 收藏
分享
11-09 14:54
已编辑
华南农业大学 产品经理
大拿老师:这个简历,连手机号码和照片都没打码,那为什么关键要素求职职位就不写呢? 从上往下看,都没看出自己到底是产品经理的简历,还是电子硬件的简历? 这是一个大问题,当然,更大的问题是实习经历的描述是不对的 不要只是去写实习流程,陈平,怎么去开会?怎么去讨论? 面试问的是你的产品功能点,是怎么设计的?也就是要写项目的亮点,有什么功能?这个功能有什么难处?怎么去解决的? 实习流程大家都一样,没什么优势,也没有提问点,没有提问,你就不得分 另外,你要明确你投的是什么职位,如果投的是产品职位,你的项目经历写的全都是跟产品无关的,那你的简历就没用 你的面试官必然是一个资深的产品经理,他不会去问那些计算机类的编程项目 所以这种四不像的简历,在校招是大忌
点赞 评论 收藏
分享
点赞 4 评论
分享
牛客网
牛客企业服务