2021百度之星复赛
2021/8/22 6:38:59
本文主要是介绍2021百度之星复赛,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
前400名有衣服拿,然后我
草
原本没想过能拿衣服 但现在差点拿衣服有点难受
签到题漏特判wa*2 过完签到jyz表示他在外边 用txt敲了代码让我帮忙编译 时间--
第二题漏情况了样例过不去 调了半天hhhhh
1002
枚举k表示用乘号将n个加号划分为k个集合,然后在求一下插入乘号的方案即可,也是用斯特林数
群友表示这已经是csp初中组的知识点了
#include<bits/stdc++.h> using namespace std; const int maxn = 3e3 + 7, md = 1e9 + 7; #define ll long long int rd() { int s = 0, f = 1; char c = getchar(); while (c < '0' || c > '9') {if (c == '-') f = -1; c = getchar();} while (c >= '0' && c <= '9') {s = s * 10 + c - '0'; c = getchar();} return s * f; } int n, m, k, tot, a[maxn], T; ll S[maxn][maxn], fac[maxn]; ll ans = 0; int main() { T = rd(); S[0][0] = 1; fac[0] = fac[1] = 1; for (int i = 1; i <= 3000; i++) { fac[i] = fac[i-1] * i % md; for (int j = 1; j <= 3000; j++) { S[i][j] = (S[i-1][j-1] + 1ll*j*S[i-1][j]%md)%md; } } while (T--) { ans = 0; n = rd(), m = rd(); for (k = 1; k <= min(n, m+1); k++) { ll res = (S[m][k-1] * fac[k-1])%md; if (k<=m) res = (res + 2ll * fac[k]%md * S[m][k] % md); if (k+1 <= m) res = (res + fac[k+1] * S[m][k+1] % md) % md; ans = (ans + fac[k] * S[n][k] % md * res % md) % md; } printf("%lld\n", ans); } }
这篇关于2021百度之星复赛的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南