結果
問題 | No.1492 01文字列と転倒 |
ユーザー |
|
提出日時 | 2021-05-28 19:23:38 |
言語 | C (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 116 ms / 4,000 ms |
コード長 | 650 bytes |
コンパイル時間 | 556 ms |
コンパイル使用メモリ | 30,848 KB |
実行使用メモリ | 55,680 KB |
最終ジャッジ日時 | 2024-11-07 07:23:35 |
合計ジャッジ時間 | 2,877 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 22 |
ソースコード
#include<stdio.h>int dp[201][101][10001];int add_mod(int *a, int b, int mod) {*a += b;if(*a >= mod) *a -= mod;return *a;}int main() {int n, m;scanf("%d%d", &n, &m);dp[0][0][0] = 1;for(int i = 0; i < n*2; i++) {for(int j = i&1; j <= i && j <= n*2-i; j += 2) {for(int k = 0; k < 10001; k++) {if(dp[i][j][k] == 0) continue;if(j != n*2-i) add_mod(dp[i+1][j+1]+k+(i-j)/2, dp[i][j][k], m);if(j) add_mod(dp[i+1][j-1]+k, dp[i][j][k], m);}}}for(int i = 0; i <= n*n;) printf("%d\n", dp[n*2][0][i++]);return 0;}