弹珠 题解
题意
求
题解
考虑记
- 我们可以一次性只加一个球(新放到一个盘子里),也就是可以从
转移过来。 - 也可以用已有的盘子每个盘子放一个球,就是从
转移过来。
为什么不可以从
因为重复两次上述操作会导致重复(再说了时间复杂度也不允许……)
时间复杂度
namespace zqh {
const int N = 5005;
int n, k;
int dp[N][N];
void init() {
cin >> n >> k;
}
void solve() {
dp[0][0] = 1;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= min(i, k); j++) {
dp[i][j] = (dp[i - 1][j - 1] + dp[i - j][j]) % mod;
}
}
cout << dp[n][k];
}
void main() {
init();
solve();
}
} // namespace zqh
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 为DeepSeek添加本地知识库
· 精选4款基于.NET开源、功能强大的通讯调试工具
· DeepSeek智能编程
· 大模型工具KTransformer的安装
· [计算机/硬件/GPU] 显卡