HAOI2012 音量調節

2022-05-09 15:05:44 字數 1136 閱讀 1772

嘟嘟嘟

這道題只要狀態一想出來,這題就做完了。

另 dp[i][j] 表示 i 首歌音量 j 能否達到,則如果dp[i - 1][j] = 1,那麼dp[i][j + c[i]] = dp[i][j - c[i]] = 1.然後最後從max到0反向遍歷dp[n][i]即可。

注意這題陣列要開2e3,否則因為j + c[i]陣列越界造成了一些詭異的錯誤,導致我第一次交wa了三個點。

1 #include2 #include3 #include4 #include5 #include6 #include7 #include8 #include9 #include10 #include11

using

namespace

std;

12#define enter printf("\n")

13#define space printf(" ")

14#define mem(a) memset(a, 0, sizeof(a))

15 typedef long

long

ll;16 typedef double

db;17

const

int inf = 0x3f3f3f3f;18

const

int eps = 1e-8;19

const

int maxn = 55;20

const

int max_size = 2e3 + 5;21

inline ll read()

2226

while(isdigit(ch))

27if(last == '

-') ans = -ans;

28return

ans;29}

30 inline void

write(ll x)

3136

37int

n, beg, max, a[maxn];

38bool

dp[maxn][max_size];

3940

intmain()

4149 write(-1

); enter;

50return0;

51 }

view code

HAOI2012 音量調節

音量用乙個整數描述。輸入檔案中整數beginlevel,代表吉他剛開始的音量,整數maxlevel,代表吉他的最大音量。音量不能小於0也不能大於maxlevel。輸入中還給定了n個整數c1,c2,c3,cn,表示在第i首歌開始之前吉他手想要改變的音量是多少。吉他手想以最大的音量演奏最後一首歌,你的任...

HAOI2012音量調節

音量用乙個整數描述。輸入檔案中給定整數beginlevel,代表吉他剛開始的音量,以及整數maxlevel,代表吉他的最大音量。音量不能小於0也不能大於maxlevel。輸入檔案中還給定了n個整數c1,c2,c3 cn,表示在第i首歌開始之前吉他手想要改變的音量是多少。吉他手想以最大的音量演奏最後一...

大暴力 HAOI 2012音量調節

題目 haoi 2012音量調節 描述 音量用乙個整數描述。輸入檔案中給定整數beginlevel,代表吉他剛開始的音量,以及整數maxlevel,代表吉他的最大音量。音量不能小於0也 不能大於maxlevel。輸入檔案中還給定了n個整數c1,c1,cn,表示在第i首歌開始之前吉他手想要改變的音量是...