当前位置:网站首页>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
边栏推荐
- Data visualization chart summary (I)
- MatrixDB v4.5.0 重磅发布,全新推出 MARS2 存储引擎!
- Leetcode-6108: decrypt messages
- 【Rust 笔记】16-输入与输出(下)
- The difference between CPU core and logical processor
- 1040 Longest Symmetric String
- Error ora-28547 or ora-03135 when Navicat connects to Oracle Database
- 1039 Course List for Student
- SPI 详解
- leetcode-1200:最小绝对差
猜你喜欢

Error ora-28547 or ora-03135 when Navicat connects to Oracle Database

Erreur de connexion Navicat à la base de données Oracle Ora - 28547 ou Ora - 03135

LaMDA 不可能觉醒吗?

传统数据库逐渐“难适应”,云原生数据库脱颖而出

1.13 - RISC/CISC

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

MySQL advanced part 2: the use of indexes

Redis publish subscribe command line implementation

1.15 - 输入输出系统

做 SQL 性能优化真是让人干瞪眼
随机推荐
Collection: programming related websites and books
可变电阻器概述——结构、工作和不同应用
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
1039 Course List for Student
1.13 - RISC/CISC
Leetcode backtracking method
In depth analysis of for (VaR I = 0; I < 5; i++) {settimeout (() => console.log (I), 1000)}
[rust notes] 15 string and text (Part 1)
The difference between CPU core and logical processor
[rust notes] 14 set (Part 1)
SQLMAP使用教程(二)实战技巧一
实时时钟 (RTC)
1040 Longest Symmetric String
阿里巴巴成立企业数智服务公司“瓴羊”,聚焦企业数字化增长
leetcode-3:无重复字符的最长子串
7. Processing the input of multidimensional features
Daily question 2013 Detect square
leetcode-6109:知道秘密的人数
Leetcode-6108: decrypt messages
Quickly use Amazon memorydb and build your own redis memory database