1 solutions

  • 1
    @ 2024-8-16 10:47:43
    #include<bits/stdc++.h>
    using namespace std;
    typedef long long LL;
    int n=5;
    const int N=10;
    int w[N],v[N];
    int main()
    {
    	LL ans=0;
    	for(int i=0;i<n;i++) //获取体积 
    	{
    		cin>>v[i];
    	}
    	for(int i=0;i<n;i++) //获取价值 
    	{
    		cin>>w[i];
    	}
    	for(int i=0;i<1<<n;i++) //枚举每种状态 
    	{
    		LL vs=0,ws=0;
    		for(int j=0;j<n;j++) //判断状态i的时候,第j个物品是否选择 
    		{
    			if(i>>j&1)
    			{
    				vs+=v[j];
    				ws+=w[j];
    			}
    		}
    		if(vs<=15) //判断第i种状态的结果 
    		{
    			ans=max(ans,ws);
    		}
    	}
    	cout<<ans;
    	return 0;
    }
    
    • 1

    Information

    ID
    637
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    5
    Tags
    # Submissions
    67
    Accepted
    18
    Uploaded By