質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

1回答

636閲覧

AtCoderにて動的計画法で実装したコードのどこが間違っているのかわからない

mmmisaki

総合スコア34

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2021/12/09 11:50

dpの勉強としてatcoderでdpを使った以下の問題を解いてみました。
https://atcoder.jp/contests/dp/tasks/dp_b

以下は実装コードです。
例題はすべて正解するのですが、コードを提出するとWAになります。

なにを間違えていて何を考慮できていないのか教えていただけると幸いです。

他の人のコードを見てみましたが、配るDPで実装されていて貰うDPではなかったのですが、貰うDPではいけないのでしょうか?

C++

1#include <iostream> 2#include <string> 3#include <vector> 4#include <algorithm> 5#include <typeinfo> 6#include <array> 7#include <map> 8 9 10int main() { 11 std::ios_base::sync_with_stdio(false); 12 std::cin.tie(NULL); 13 14 15 int n, k; 16 std::cin >> n >> k; 17 std::vector<int> p; 18 std::vector<int> dp(n, 1 << 29); 19 for (int i = 0; i < n; ++i) { 20 int num; 21 std::cin >> num; 22 p.push_back(num); 23 } 24 dp[0] = 0; 25 26 for (int i = 0; i < n; ++i) { 27 for (int j = 1; j <= std::min(i, k); ++j) { 28 dp[i] = std::min(dp[i], std::abs(p[i - j] - p[i]) + dp[i - j]); 29 } 30 } 31 std::cout << dp[n - 1] << std::endl; 32 33}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

C++

1 std::vector<int> dp(n, 1 << 29);

デフォルトの値が小さすぎます

他の人のコードを見てみましたが、配るDPで実装されていて貰うDPではなかったのですが、貰うDPではいけないのでしょうか?

関係ないです

投稿2021/12/09 19:47

yudedako67

総合スコア2047

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問