社区讨论
和暴力一样的20pts
P1655小朋友的球参与者 1已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @mkmmgx6k
- 此快照首次捕获于
- 2026/01/20 21:20 4 周前
- 此快照最后确认于
- 2026/01/24 12:20 4 周前
WA 了,20pts,楼下 hack 对了。。。
CPP#include <bits/stdc++.h>
using namespace std;
#define rep(i, x, y) for (int i = (x); i <= (y); i++)
#define per(i, x, y) for (int i = (x) ;i >= (y); i--)
#define ll long long
#define ull unsigned long long
#define db double
#define sz(x) ((int)x.size())
#define inf (1 << 30)
#define pb push_back
typedef pair<int, int> PII;
constexpr int N = 101;
constexpr int P = 998244353;
class BigInt {
public:
int a[1001], len;
BigInt() {
len = 0;
memset(a, 0, sizeof(a));
}
void modify(int len_) {
len = len_;
for (int i = 1; i <= len; i++) {
a[i + 1] += a[i] / 10;
a[i] %= 10;
}
while (!a[len] && len > 1) len--;
}
BigInt& operator = (BigInt A) {
if (this == &A) return *this;
memset(a, 0, sizeof(a));
len = 0;
for (int i = 1; i <= A.len; i++) {
a[i] = A.a[i];
}
len = A.len;
return *this;
}
void clear() {
len = 0;
memset(a, 0, sizeof(a));
}
BigInt operator + (BigInt A) {
BigInt c;
int l = max(len, A.len);
for (int i = 1; i <= l; i++) {
c.a[i] += a[i] + A.a[i];
}
c.modify(l + 1);
return c;
}
};
BigInt operator * (const BigInt &A, const int &B) {
int len = A.len;
BigInt C;
for (int i = 1; i <= len; i++) {
C.a[i] = A.a[i] * B;
}
C.modify(len + 1);
return C;
}
BigInt f[N][N];
void S(int n, int k) {
for (int i = 0; i <= n; i++) {
for (int j = 0; j <= k; j++) {
f[i][j].clear();
}
}
if (k > n || k < 0) {
cout << 0 << '\n';
return;
}
if (n == 0) {
cout << (k == 0) << '\n';
return;
}
f[0][0].len = 1;
f[0][0].a[1] = 1;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= min(i, k); j++) {
f[i][j] = f[i - 1][j] * j + f[i - 1][j - 1];
}
}
BigInt &F = f[n][k];
for (int i = F.len; i >= 1; i--) {
cout << F.a[i];
}
cout << '\n';
}
int n, m;
void solve() {
S(n, m);
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0), cout.tie(0);
while (cin >> n >> m) solve();
return 0;
}
回复
共 1 条回复,欢迎继续交流。
正在加载回复...