1. 程式人生 > >【BZOJ2748/HAOI2012】音量調節

【BZOJ2748/HAOI2012】音量調節

解析:

  揹包DP。   省選題?嗯?怕不是揹包入門題吧。。。

程式碼:

#include <bits/stdc++.h>
using namespace std;

int n,m,s,ans=-1;
int f[55][1005],w[55];

int main()
{
	scanf("%d%d%d",&n,&s,&m);
	for(int i=1;i<=n;i++) scanf("%d",&w[i]);
	f[0][s]=1;
	for(int i=1;i<=n;i++)
	{
	  for(int j=w[i];j<=m;j++
) if(f[i-1][j-w[i]]) f[i][j]=1; for(int j=0;j<=m-w[i];j++) if(f[i-1][j+w[i]]) f[i][j]=1; } for(int i=m;i;i--) if(f[n][i]) {ans=i;break;} cout<<ans; return 0; }