社区讨论

和暴力一样的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 条回复,欢迎继续交流。

正在加载回复...