rqnoj-72

背包变形

#include<iostream>
#include<fstream>
using namespace std;
int f[1024],a[111];//注意f[1024]的范围尽量大点
int main()
{
    int i,j,n,sum=0;
    //fstream cin("d:\\test.txt");
    cin>>n;
    for(i=0;i<n;i++)
    {
        cin>>a[i];
        sum+=a[i];
    }
    for(i=0;i<n;i++)
        for(j=sum/2;j>=a[i];j--)
            if(f[j]<f[j-a[i]]+a[i])
                f[j]=f[j-a[i]]+a[i];
    cout<<sum-f[sum/2]-f[sum/2]<<endl;
    return 0;
}


你可能感兴趣的:(rqnoj-72)