區間dp 求殺怪最少損傷

2021-07-01 22:55:38 字數 986 閱讀 1195

時間限制:

1000 ms  |  記憶體限制:

65535 kb

難度:2 描述

一入宿舍深似海,自此ac是路人,善哉善哉。。。

有這樣乙個遊戲:有一排妖怪,每個妖怪都有乙個主要攻擊值和輔助攻擊值,你每次只能攻擊乙個妖怪,當你攻擊乙個妖怪時,這只妖怪 很顯然的就掛了(要不都沒得玩兒了),當然當前妖怪對你造成的傷害為  當前妖怪的主要攻擊值+旁邊兩隻妖怪的輔助攻擊值(如果你攻擊的妖怪兩邊沒有妖怪,那輔助攻擊就為0)。

然後問題就來了,殺死全部妖怪你所受的最小傷害值是多少?

輸入

第一行乙個整數t,表示測試資料組數

每組測試資料第一行包含乙個整數n,表示妖怪的數量(1<=n<=200)

接下來一行n個數,表示每個妖怪的主要攻擊值[0,100000]

接下來一行n個數,表示每個妖怪的輔助攻擊值[0,10000]

輸出對每組輸入,輸出最小傷害值

樣例輸入

2

33 5 7

8 2 0

101 3 5 7 9 2 4 6 8 10

9 4 1 2 1 2 1 4 5 1

樣例輸出

case #1: 17

case #2: 74

明天寫思路!

先上**

#include #include #include #define maxn 0xffffff

#include using namespace std;

int main()

dp[j][temp] += b[j-1]+b[temp+1];}}

printf("case #%d: ",flag++);

printf("%d\n",dp[1][n]);}}

//cout << "hello world!" << endl;

return 0;

}

RMQ求區間最值

rmq演算法,是乙個快速求區間最值的離線演算法,預處理時間複雜度o n log n 查詢o 1 所以是乙個很快速的演算法,當然這個問題用線段樹同樣能夠解決。問題 給出n個數ai,讓你快速查詢某個區間的的最值。一 首先是預處理,用動態規劃 dp 解決。設a i 是要求區間最值的數列,f i,j 表示從...

RMQ 求區間最值

rmq演算法,是乙個快速求區間最值的離線演算法,預處理時間複雜度o n log n 查詢o 1 概念 rmq range minimum maximum query 即區間最值查詢,是指這樣乙個問題 對於長度為n的數列a,回答若干詢問rmq a,i,j i,j n 返回數列a中下標在i,j之間的最小...

單調佇列(求區間最值)

p1440 求m區間內的最小值 題目描述 乙個含有n項的數列 n 2000000 求出每一項前的m個數到它這個區間內的最小值。若前面的數不足m項則從第1個數開始,若前面沒有數則輸出0。輸入輸出格式 輸入格式 第一行兩個數n,m。第二行,n個正整數,為所給定的數列。輸出格式 n行,第i行的乙個數ai,...