#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; } |
English