用户输出
0
系统信息
Exited with return code 0
编号 | 题目 | 状态 | 分数 | 总时间 | 内存 | 代码 / 答案文件 | 提交者 | 提交时间 |
---|---|---|---|---|---|---|---|---|
#68713 | #1322. [L2-1]来吃糖果吧 | Accepted | 100 | 451 ms | 372 K | C++ 11 / 717 B | 机类027-董清泰 | 2022-04-05 21:00:01 |
#include <bits/stdc++.h>
using namespace std;
const int p = 1E9 + 7;
int n, a, b;
inline int quick_mul(int a, int b, int x) {
int rec = 0;
while (b) {
if (b & 1)
rec = (rec % x + a % x) % x;
a = (a % x + a % x) % x;
b >>= 1;
}
return rec;
}
inline int quick_pow(int a, int b, int x) {
int rec = 1;
while (b) {
if (b & 1)
rec = quick_mul(rec, a, x);
a = quick_mul(a, a, x);
b >>= 1;
}
return rec;
}
int C(int n, int m) {
int fz = 1, fm = 1;
for (int i = 1; i <= m; ++i) {
fz = quick_mul(fz, n - i + 1, p);
}
for (int i = 1; i <= m; ++i) {
fm = quick_mul(fm, i, p);
}
int inv = quick_pow(fm, p - 2, p);
return quick_mul(fz, inv, p);
}
int main() {
scanf("%d %d %d", &n, &a, &b);
int ans = (quick_pow(2, n, p) - C(n, a) - C(n, b) + 2 * p - 1) % p;
printf("%d", ans);
}
用户输出
382492393
系统信息
Exited with return code 0
用户输出
173776972
系统信息
Exited with return code 0
用户输出
810092880
系统信息
Exited with return code 0
用户输出
506071717
系统信息
Exited with return code 0
用户输出
582594886
系统信息
Exited with return code 0