結果
問題 | 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; }