社区讨论

全WA,问题是不会累加结果,求指正QWQ

P2476 [SCOI2008] 着色方案参与者 2已保存回复 4

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
4 条
当前快照
1 份
快照标识符
@mhj0mqpp
此快照首次捕获于
2025/11/03 18:47
4 个月前
此快照最后确认于
2025/11/03 18:47
4 个月前
查看原帖
CPP
#include <bits/stdc++.h>
using namespace std;

const long long mol = 1e9 + 7;
long long k, c[16], n;
long long mem[16][6];

long long dp(int cnt, int val) {
	if (cnt == n + 1) {
		return mem[cnt][val] = 0; 
	}
	if (mem[cnt][val] != -1) {
		return mem[cnt][val];
	}
	long long dfs[16] = {0}, maxn = 0;
	for (int i = 1; i <= val; i++) {
		if (i != val && c[i] > 0) {
			c[i]--;
			dfs[i] = (dp(cnt + 1, i) + 1) % mol;
			c[i]++;
			maxn += dfs[i];
		}
	} 
	return mem[cnt][val] = maxn;
}

int main() {
	cin >> k;
	for (int i = 1; i <= k; i++) {
		cin >> c[i];
		n += c[i];
	}
	cout << dp(0,k);
	return 0;
}

回复

4 条回复,欢迎继续交流。

正在加载回复...