洛谷p1541
tag:揹包
在一行n個格仔上進行遊戲,每個格仔有乙個分數a[i]。你在1號格仔,每次可以向前走1/2/3/4個格仔,每種走法限制最多走b1/b2/b3/b4次。一次走法的分數是走過的格仔的分數和。問走到n號格仔的最大分數。
保證b1+2b2+3b3+4*b4=n+1(恰好走完所有的次數)
n<=350,a[i]<=100,bi<=40
【冷靜分析】
這應該是個四維的dp,思想與揹包相似
對於四種卡abcd,上一張取還是不取就是揹包的思想
dp[a][b][c][d]:表示你出了a張爬行牌1,b張爬行牌2,c張爬行牌3,d張爬行牌4時的得分
當前位置r=a1+b2+c3+d4+1(從格仔1開始走的)
標程:
#includeusing namespace std;
int dp[42][42][42][42],n,m,score[351],num[5];
int main()
dp[0][0][0][0]=score[1];
for(int i=0;i<=num[1];i++)
for(int j=0;j<=num[2];j++)
for(int k=0;k<=num[3];k++)
for(int l=0;l<=num[4];l++)
cout
}
洛谷 P1541 烏龜棋
題目背景 小明過生日的時候,爸爸送給他一副烏龜棋當作禮物。烏龜棋的棋盤是一行n個格仔,每個格仔上乙個分數 非負整數 棋盤第1格是唯一的起點,第n格是終點,遊戲要求玩家控制乙個烏龜棋子從起點出發走到終點。烏龜棋中m張爬行卡片,分成4種不同的型別 m張卡片中不一定包含所有4種型別的卡片,見樣例 每種型別...
洛谷P1541 烏龜棋
小明過生日的時候,爸爸送給他一副烏龜棋當作禮物。烏龜棋的棋盤是一行n個格仔,每個格仔上乙個分數 非負整數 棋盤第1格是唯一的起點,第n格是終點,遊戲要求玩家控制乙個烏龜棋子從起點出發走到終點。烏龜棋中m張爬行卡片,分成4種不同的型別 m張卡片中不一定包含所有4種型別的卡片,見樣例 每種型別的卡片上分...
洛谷P1541 烏龜棋
小明過生日的時候,爸爸送給他一副烏龜棋當作禮物。烏龜棋的棋盤是一行n個格仔,每個格仔上乙個分數 非負整數 棋盤第1格是唯一的起點,第n格是終點,遊戲要求玩家控制乙個烏龜棋子從起點出發走到終點。烏龜棋中m張爬行卡片,分成4種不同的型別 m張卡片中不一定包含所有4種型別的卡片,見樣例 每種型別的卡片上分...