結果
問題 | No.220 世界のなんとか2 |
ユーザー | te-sh |
提出日時 | 2016-09-16 15:37:07 |
言語 | D (dmd 2.109.1) |
結果 |
AC
|
実行時間 | 2 ms / 1,000 ms |
コード長 | 698 bytes |
コンパイル時間 | 835 ms |
コンパイル使用メモリ | 116,596 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-06-12 04:28:54 |
合計ジャッジ時間 | 1,785 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 19 |
ソースコード
import std.algorithm, std.array, std.container, std.range, std.bitmanip; import std.numeric, std.math, std.bigint, std.random, core.bitop; import std.string, std.regex, std.conv, std.stdio, std.typecons; void main() { auto p = readln.chomp.to!ulong; auto memo = new ulong[][](p, 3); ulong dp(ulong i, ulong m) { auto r = 0UL; if (i == 0) { foreach (j; 0..10) if (j == 3 || (m + j) % 3 == 0) ++r; } else if (memo[i][m] > 0) { return memo[i][m]; } else { foreach (j; 0..10) if (j == 3) r += 10 ^^ i; else r += dp(i - 1, (m + j) % 3); } return memo[i][m] = r; } writeln(dp(p - 1, 0) - 1); }