嘟嘟嘟
這道題只要狀態一想出來,這題就做完了。
另 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 #include11view codeusing
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 }
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首歌開始之前吉他手想要改變的音量是...