本サイトでは、書籍のサポート情報を掲載していきます。
本書でとりあげた問題をオンラインジャッジできるAIZU ONLINE JUDGEのサイトです。
ページ | 箇所 | 誤 | 正 | 備考 |
---|---|---|---|---|
16 | 下から4行目 | 最強最速アルゴリズムマー養成講座 | 最強最速アルゴリズマー養成講座 | 1~5刷 |
70 | コード3行目 | for j = N-1 downto i | for j = N-1 downto i+1 | 1,2刷 |
71 | Program 3.2 | 1 isStable(in, out) 2 for i = 1 to N-1 3 for j = i+1 to N 4 for a = 1 to N-1 5 for b = a+1 to N 6 if in[i] と out[j] の数字が等しい && in[i] == out[b] && in[j] == out[a] 7 return false 8 return true |
1 isStable(in, out) 2 for i = 0 to N-1 3 for j = i+1 to N-1 4 for a = 0 to N-1 5 for b = a+1 to N-1 6 if in[i] と in[j] の数字が等しい && in[i] == out[b] && in[j] == out[a] 7 return false 8 return true |
1刷 |
72 | 解凍例 コード8行目 | for ( int j = N - 1; j >= i; j-- ) { |
for ( int j = N - 1; j >= i + 1; j-- ) { |
1,2刷 |
92 | 擬似コード 18行目 | } | }は不要 | 1刷 |
116 | 解答例 27,34行目 | int t = 0;、t += ans[i]; | 不要な記述につき削除 | 1,2刷 |
172 | 解答例 23行目 | C[i] = C[i] + C[i + 1]; | C[i] = C[i] + C[i - 1]; | 1刷 |
186 | 下から3行目 | 内部接点(internal node)と呼びます。 | 内部節点(internal node)と呼びます。 | 1~10刷 |
187 | 下から6行目 | T は接点を | T は節点を | 1~10刷 |
224 | 5行目 | 時間と場所に異存します。 | 時間と場所に依存します。 | 1刷 |
225 | 31行目 | print(S); // 3: 1 2 4 8 | print(S); // 4: 1 2 4 8 | 1,2刷 |
250 | Program 11.2 4行目 | return fibonacci(i - 2) + fibonacci(i - 1) | return fibonacci(n - 2) + fibonacci(n - 1) | 1,2刷 |
251 | Program 11.3 6行目 | return fibonacci(i - 2) + fibonacci(i - 1) | return fibonacci(n - 2) + fibonacci(n - 1) | 1,2刷 |
235 | 解答例 7行目 | return 2 * i + 1 | return 2 * i + 1; | 1刷 |
262 | 解答例 20行目 | m[i][j] = min(m[i][j], m[i][k] + m[i][k] + m[k + 1][j] + … | m[i][j] = min(m[i][j], m[i][k] + m[k + 1][j] + … | 1刷 |
336 | 問題文 1行目 | 重み付き無向グラフ | 重み付き有向グラフ | 1,2刷 |
336 | 問題文 入力 下より2行目 | i番目の辺が結ぶ(無向) | i番目の辺が結ぶ(有向) | 1,2刷 |
381 | Program 16.18 タイトル |
直線 s と点 p の距離 | 直線 l と点 p の距離 | 1刷 |
409 | Program 16.28 平面走査の解答例 55,56行目 |
55 set<int>::iteretor b = lower_bound( |
55 set<int>::iteretor b = BT.lower_bound( |
1,2刷補足1: |
427 | 解答例 8-14行目 | for ( int i = 0; i < H; i++ ) { for ( int j = 0; j < W; j++ ) { dp[i][j] = (G[i][j] + 1) % 2; } } int maxWidth = 0; |
int maxWidth = 0; for ( int i = 0; i < H; i++ ) { for ( int j = 0; j < W; j++ ) { dp[i][j] = (G[i][j] + 1) % 2; maxWidth |= dp[i][j]; } } |
1刷 補足2: |
446 | Program 18.7 1行目 | pos(x, n) | pow(x, n) | 1~3刷 |
補足1: "誤"のコードでは、 O(N) で動作してしまうため、std::set が持つ関数を利用します。
補足2: "誤"のコードでは、HまたはWが1の入力に対して不正解となる可能性があります。
スタックオーバーフローを回避するために、配列dpとGは大域変数として宣言するか、動的にメモリを確保してください。