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

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

ただいまの
回答率

90.98%

  • アルゴリズム

    344questions

    アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

競プロでの問題の復習方法

解決済

回答 3

投稿

  • 評価
  • クリップ 0
  • VIEW 206

toshiyan

score 33

僕はプログラミングスキルをもっとつけたいと思っています。
そのために、競プロの問題を頻繁に解くのですが、どうしてもわからない問題が出てきます。
例えば、AtCoder Beginner Contest 076のD問題「AtCoder Express」などです。

AtCoder Beginner Contest 076のD問題「AtCoder Express」

解説を見てもよくわかりません。まず、数学記号が多いのです。

解説がよくわからないため、今は、ACが出ているソースコードをコピーしてきて、そのソースコードを動かしながら、何とか理解しようと努めています。勉強の進め方としては、これで間違いないでしょうか?そして、一日頑張ってもわからなかった場合はどうすればいいでしょうか?

回答お願い致します。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

checkベストアンサー

+4

言うほど難しい数学記号なんて出てないと思いますが…やらΣとか使われていたら投げ出したくなる気持ちもわかりますが、ここで使われている記号は全部ただの変数や比較記号、計算記号でしかないですよ。また、アルゴリズムと数学は切っても切り離せないものなので、数学記号に苦手意識を持っていることこそが学習の障害かと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/01/19 11:46

    確かに、よく読んでみると何とか理解できます。苦手意識が邪魔をしています。この苦手意識を克服するためにも、解説の内容をコードに書き起こす練習が必要みたいです。

    キャンセル

  • 2018/01/19 12:00

    落ち着いて読めば、大したことはないのです。ちなみにこういう問題で出てくる変数で使われる「t」はTime(時間)、「v」はVelocity(速度)、「m/s」はMeter per Second(メートル毎秒)、「n」はNatural number(自然数)を表しています。nは数学で「決まっている数字ではないけど◯番目を表したい」ときに使われる記号です。このへんの知識があれば更に読み解きやすくなるでしょう。

    今回の問題では使われていませんが、「r」はRadius(半径)であったり、なにかしら変数に使われている英語には意味が込められていることが多いです。

    キャンセル

  • 2018/01/19 12:54

    何とか解説を理解し、コードに書き起こすことができました。回答ありがとうございました!

    https://beta.atcoder.jp/contests/abc076/submissions/1991237

    キャンセル

  • 2018/01/19 13:01

    数学で使われている変数の名前の由来についても参考になりました。ありがとうございます。そういうのがわからないと、途中でこんがらがりますよね…。

    キャンセル

+1

実際に「列車を走らせる」ことをイメージできなければ、コードを考えるのは難しいでしょう。

・制限速度で走った場合が最も距離を稼げる訳ですから、制限速度に達するまでは加速するほうが良い
・次の時間区間の制限速度が、今の時間区間の制限速度よりも低いなら、今の時間区間が終わるまでに次の時間区間の制限速度まで減速しておかなければならない
というような方針や制約を考えていくと、イメージがつかめるのではないかと思います。

難しい数学記号は使われていません! 
"入力例3"
を解釈していくと、
1行目の3: 全体の時間が「3」つの区間に分けられている
2行目の12 14 2: 1つ目の区間は12秒、2つ目の区間は14秒、3つ目の区間は2秒
3行目の6 2 7: 制限速度は1つ目の区間が6m/s、2つ目の区間が2m/s、3つ目の区間が7m/s
という事なので、表のように表すと

区間      1  2  3
走行時間[秒]      12    14  2
制限速度[m/s]  6  2  7

t1は区間1の走行時間なので12、t2は区間2の走行時間なので14、、、
v1は区間1の制限速度なので6、t2は区間2の制限速度なので2、、、

ね、難しくないでしょ?

==
t1,t2のように、末尾に添えられた数字で「xx番目の値」を表すぐらいは数学の基礎の基礎なので、判らなければ数学の参考書を読み返してください。

数列 のような受験講座のページも判り易く書かれているものが多いです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/01/19 12:55

    なるほど、まず問題をイメージすることが大切なのですね。

    キャンセル

  • 2018/01/19 13:03

    確かに、冷静に解説を読んでみると、理解できるものばかりですね。まだ耐性がついていないためか、脳が拒絶反応を起こしていたようです(笑)イメージしてから解説を読むことで、結構すんなりとコードに書き起こすことができました。回答ありがとうございました!

    キャンセル

0

一日頑張ってもわからなかった場合はどうすればいいでしょうか? 

2日目頑張れば良いです。
そんなもんです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/01/19 11:41

    一度諦めて別の問題を解くという選択肢は駄目でしょうか?

    キャンセル

  • 2018/01/19 11:46

    目標と優先順位によります。
    ここは人生相談する場所じゃないですよ。。。

    キャンセル

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

  • ただいまの回答率 90.98%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • アルゴリズム

    344questions

    アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。