当前位置:网站首页>Niu Mei's math problems
Niu Mei's math problems
2022-07-05 06:16:00 【whitewall_ nine】
#include<bits/stdc++.h>
using namespace std;
#define rep(i,l,r) for(int i=(l);i<=(r);i++)
#define per(i,l,r) for(int i=(l);i>=(r);i--)
#define ll long long
#define pii pair<int, int>
#define mset(s,t) memset(s,t,sizeof(t))
#define mcpy(s,t) memcpy(s,t,sizeof(t))
#define fir first
#define pb push_back
#define sec second
#define sortall(x) sort((x).begin(),(x).end())
inline int read () {
int x = 0, f = 0;
char ch = getchar();
while (!isdigit(ch)) f |= (ch=='-'),ch= getchar();
while (isdigit(ch)) x = x * 10 + ch - '0', ch = getchar();
return f?-x:x;
}
template<typename T> void print(T x) {
if (x < 0) putchar('-'), x = -x;
if (x >= 10) print(x/10);
putchar(x % 10 + '0');
}
#define int long long
const int N = 1e7 + 5;
const int mod = 998244353;
int n, k;
int fac[N], infac[N];
int a[N];
int pow2[N];
int qmi (int a, int b, int c) {
int ans = 1 %c;
while (b) {
if (b & 1) ans =ans * a % c;
b >>= 1;
a = a * a % c;
}
return (ans %c+ c)%c;
}
int C(int n,int m)
{
if(n<m) return 0;
return fac[n]*infac[m]%mod*infac[n-m]%mod;
}
void init () {
//cout << qmi(3, mod- 2, mod) << endl;
pow2[0] = 1;
fac[0] = 1;
for (int i =1; i< N ; i++)
fac[i] = fac[i - 1] * i %mod;
for (int i = 1; i < N; i++)
pow2[i] = pow2[i - 1] * 2 %mod;
infac[N - 1] = qmi (fac[N - 1], mod - 2, mod) %mod;
infac[0] = infac[1] = 1;
for (int i = N - 1; i>= 1; i--)
infac[i - 1] = infac[i] * i %mod;
}
void solve() {
cin >> n >> k;
init();
// cout << C(3, 1) << endl;
int one = 0, two = 0;
for (int i = 1; i <= n; i ++ )
{
cin >> a[i];
if (a[i] == 1) one ++;
else if (a[i] == 2) two ++;
}
int ans = 0;
for (int i = 0; i <= k; i++) {
ans = ((ans + C(one, i) * C(two, k - i) %mod * pow2[k - i] %mod + mod) %mod + mod) %mod;
}
cout << ans << endl;
}
signed main () {
int t;
t = 1;
while (t --) solve();
}
By looking at the data range , Statistics 1 and 2 The number of ,0 No contribution , Sure . This continuous summation can be regarded as a sequence . And the solution of inverse element , The linear method can be found by observing the formula , At first, I didn't think from the perspective of formula
边栏推荐
- LeetCode 0108.将有序数组转换为二叉搜索树 - 数组中值为根,中值左右分别为左右子树
- leetcode-6111:螺旋矩阵 IV
- Daily question 2013 Detect square
- Leetcode-6111: spiral matrix IV
- MatrixDB v4.5.0 重磅发布,全新推出 MARS2 存储引擎!
- The connection and solution between the shortest Hamilton path and the traveling salesman problem
- leetcode-556:下一个更大元素 III
- Usage scenarios of golang context
- 【Rust 笔记】13-迭代器(中)
- Network security skills competition in Secondary Vocational Schools -- a tutorial article on middleware penetration testing in Guangxi regional competition
猜你喜欢
Dynamic planning solution ideas and summary (30000 words)
MySQL advanced part 2: MySQL architecture
LaMDA 不可能觉醒吗?
Traditional databases are gradually "difficult to adapt", and cloud native databases stand out
Operator priority, one catch, no doubt
Leetcode-6108: decrypt messages
wordpress切换页面,域名变回了IP地址
数据可视化图表总结(二)
MySQL advanced part 1: index
How to adjust bugs in general projects ----- take you through the whole process by hand
随机推荐
Daily question 1688 Number of matches in the competition
Records of some tools 2022
leetcode-556:下一个更大元素 III
927. 三等分 模拟
Règlement sur la sécurité des réseaux dans les écoles professionnelles secondaires du concours de compétences des écoles professionnelles de la province de Guizhou en 2022
1.14 - 流水线
MySQL advanced part 2: SQL optimization
6. Logistic model
Golang uses context gracefully
[rust notes] 17 concurrent (Part 2)
【Rust 笔记】14-集合(上)
wordpress切换页面,域名变回了IP地址
MySQL advanced part 1: stored procedures and functions
MySQL advanced part 2: MySQL architecture
884. Uncommon words in two sentences
leetcode-3:无重复字符的最长子串
MySQL advanced part 1: View
[practical skills] technical management of managers with non-technical background
Regulations for network security events of vocational group in 2022 Guizhou Vocational College skill competition
leetcode-31:下一个排列