读书人

BYSBZ 2748(音量调剂-01背包)

发布时间: 2012-11-07 09:56:10 作者: rapoo

BYSBZ 2748(音量调节-01背包)

一定要读题啊!!

这题说的是——每次一定换,没说前后不能到一个音量。


#include<cstdio>#include<cstring>#include<queue>#include<cmath>#include<cstdlib>#include<iostream>#include<functional>#include<algorithm>#include<stack>using namespace std;#define MAXN  (50 + 10)#define MAXMAXLEVEL (1000+1)int n,start,maxlevel,a[MAXN];bool f[MAXN][MAXMAXLEVEL];int main(){//  freopen("changingsounds.in","r",stdin);//  freopen("changingsounds.out","w",stdout);         memset(f,0,sizeof(f));     scanf("%d%d%d",&n,&start,&maxlevel);    for (int i=1;i<=n;i++) scanf("%d",&a[i]);    f[0][start]=1;    for (int i=1;i<=n;i++)        for (int j=0;j<=maxlevel;j++)        {            f[i][j]=j-a[i]>=0? f[i-1][j-a[i]] : 0;            f[i][j]=j+a[i]<=maxlevel? f[i-1][j+a[i]]||f[i][j] : f[i][j];                                           }    int ans=maxlevel;    while (ans>=0&&!f[n][ans]) ans--;    cout<<ans<<endl;        //  while (1);    return 0;}


读书人网 >编程

热点推荐