阿里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;
}
查看7道真题和解析
