当前位置:网站首页>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
边栏推荐
猜你喜欢

6. Logistic model

Liunx starts redis

实时时钟 (RTC)

Redis publish subscribe command line implementation

How to adjust bugs in general projects ----- take you through the whole process by hand

QQ computer version cancels escape character input expression

RGB LED infinite mirror controlled by Arduino

Groupbykey() and reducebykey() and combinebykey() in spark

LeetCode 0107. Sequence traversal of binary tree II - another method

2021apmcm post game Summary - edge detection
随机推荐
A reason that is easy to be ignored when the printer is offline
Regulations for network security events of vocational group in 2022 Guizhou Vocational College skill competition
LeetCode 1200. Minimum absolute difference
[leetcode] day94 reshape matrix
阿里巴巴成立企业数智服务公司“瓴羊”,聚焦企业数字化增长
Leetcode dynamic programming
4. 对象映射 - Mapping.Mapster
LeetCode 0108. Convert an ordered array into a binary search tree - the median of the array is the root, and the left and right of the median are the left and right subtrees respectively
Leetcode divide and conquer / dichotomy
Leetcode heap correlation
Daily question 1688 Number of matches in the competition
SQLMAP使用教程(二)实战技巧一
一些工具的记录2022
The sum of the unique elements of the daily question
[leetcode] day95 effective Sudoku & matrix zeroing
Groupbykey() and reducebykey() and combinebykey() in spark
MySQL advanced part 2: the use of indexes
Records of some tools 2022
Appium自动化测试基础 — Appium测试环境搭建总结
Sqlmap tutorial (1)