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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

253閲覧

競技プログラミングのエラー

appl

総合スコア11

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2022/07/31 08:40

前提

https://atcoder.jp/contests/abc261/tasks/abc261_d
コインを振って人生ゲームのようなものをする設定の問題で、最新の動きと今までの動きが推移すると考えて動的計画法でコードを書いてみました。するとサンプルではうまくいくのにTLEやWAが出てしまいます。

実現したいこと

正しいアルゴリズムを使っているのに出てしまうTLEの原因やWAの原因を指摘していただけるとありがたいです。

発生している問題・エラーメッセージ

WA,TLE

該当のソースコード

pypy3

1# -*- coding: utf-8 -*- 2#https://atcoder.jp/contests/abc261/tasks/abc261_d 3import sys 4input=sys.stdin.readline 5n,m=map(int,input().split()) 6#深さ優先探索がおそらく有効、、? 7#わかんないけど2bit探索してみる。計算がキツかったら後で考える 8#まてまてどう考えてもおかしいN=5000だぞ 9#あ動的計画法か 10xlist=list(map(int,input().split())) 11bonus=dict(zip(range(n+1),[0 for i in range(n+1)]))#それぞれの到達ボーナスを格納 12for i in range(m): 13 c,y=map(int,input().split()) 14 bonus[c]=y 15dp=[[0]+[-100 for i in range(n)]]#ij成分はi(0-n)回目のコイントス後にカウンタがjである場合のお金の最大値。どんどん追加していく。最初はコイントス前 16for i in range(1,n+1):#i(1-n)回後のコイントスの後に手に入る金額の最大値を各の場所について考える 17 dp.append([-100 for i in range(n+1)]) 18 for j in range(1,i+1):#i回目でカウンタがj(1-i)となる場合 19 dp[i][j]=dp[i-1][j-1]+xlist[i-1]+bonus[j] 20 #カウンタがi回目で0となる場合 21 dp[i][0]=max(dp[i-1]) 22print(dp) 23print(max(dp[n])) 24

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答1

0

自己解決

余分な出力がありました
(printを2回していた)

投稿2022/07/31 23:57

appl

総合スコア11

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問