1 条题解
-
0
C++ :
#include <iostream> #include <cstring> using namespace std; typedef long long ll; const ll moder = 100007; ll f[305][305][5]; int main(){ int n, m; while(cin >> n >> m){ memset(f, 0, sizeof(f)); f[1][1][1] = f[2][1][2] = f[3][1][3] = f[4][1][4] = 1; for(ll i = 2; i <= n; ++i) for(int j = 1; j <= m; ++j){ for(int p = 1; p <= 4; ++p){ if(i-p <= 0) continue; ll &s = f[i][j][p], *t = f[i-p][j-1], k = 1; if(p == 1) k = i; if(p == 2) k = i*(i-1)/2; if(p == 3) k = i*(i-1)*(i-2)/6; if(p == 4){ //cout << "&&" << i << endl; k = i*(i-1)*(i-2)*(i-3)/24; } //if(k<0) cout << "!!!" << endl; s += (k*t[1])%moder; if(i-p > 1) s += (k*t[2])%moder; if(i-p > 2) s += (k*t[3])%moder; if(i-p > 3) s += (k*t[4])%moder; s = s%moder; } } ll ans = f[n][m][1]+f[n][m][2]+f[n][m][3]+f[n][m][4]; ans = ans%moder; cout << ans << endl; } return 0; }
- 1
信息
- ID
- 1054
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 上传者