#include <bits/stdc++.h> using namespace std; #define ll long long ll dp[300][300][300]; bool p(int l1, int p1, int l2, int p2){ if(l1 > p2 || p1 < l2) return 0; return 1; } int main(){ ios_base::sync_with_stdio(0);cin.tie(0); int n,m; ll MOD; cin >> n >> m >> MOD; for(int j = 1; j <= m; j++) for(int k = j; k <= m; k++) dp[1][j][k] = 1; for(int i = 2; i <= n; i++){ for(int j = 1; j <= m; j++) for(int k = j; k <= m; k++){ for(int l = 1; l <= m; l++) for(int o = l; o <= m; o++){ if(p(j,k,l,o)){ dp[i][j][k] += dp[i - 1][l][o]; if(dp[i][j][k] >= MOD) dp[i][j][k] %= MOD; } } //~ cout << "["<<i<<"]["<<j<<"]["<<k<<"]: " << dp[i][j][k] << '\n'; } } for(int i = n; i <= n; i++){ ll cnt = 0; for(int j = 1; j <= m; j++) for(int k = j; k <= m; k++){ cnt += dp[i][j][k]; if(cnt >= MOD) cnt %= MOD; } //~ cout << "["<<i<<"]: " << cnt << '\n'; cout << cnt << '\n'; } return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | #include <bits/stdc++.h> using namespace std; #define ll long long ll dp[300][300][300]; bool p(int l1, int p1, int l2, int p2){ if(l1 > p2 || p1 < l2) return 0; return 1; } int main(){ ios_base::sync_with_stdio(0);cin.tie(0); int n,m; ll MOD; cin >> n >> m >> MOD; for(int j = 1; j <= m; j++) for(int k = j; k <= m; k++) dp[1][j][k] = 1; for(int i = 2; i <= n; i++){ for(int j = 1; j <= m; j++) for(int k = j; k <= m; k++){ for(int l = 1; l <= m; l++) for(int o = l; o <= m; o++){ if(p(j,k,l,o)){ dp[i][j][k] += dp[i - 1][l][o]; if(dp[i][j][k] >= MOD) dp[i][j][k] %= MOD; } } //~ cout << "["<<i<<"]["<<j<<"]["<<k<<"]: " << dp[i][j][k] << '\n'; } } for(int i = n; i <= n; i++){ ll cnt = 0; for(int j = 1; j <= m; j++) for(int k = j; k <= m; k++){ cnt += dp[i][j][k]; if(cnt >= MOD) cnt %= MOD; } //~ cout << "["<<i<<"]: " << cnt << '\n'; cout << cnt << '\n'; } return 0; } |