头像

欢迎来到我的博客

分享题解与总结

P2036 PERKET

image

思路:

对n中配料:选/不选,共2^n种可能——二进制枚举

    #include<bits/stdc++.h>
    using ll=long long;
    using namespace std;
    ll n,cs=1,cb,ans=INT_MAX;//current-sour current-bitter 
    struct food{
    	ll s,b;
    }fd[15];
    
    int main()
    {
    	cin>>n;
    	for(ll i=1;i<=n;++i){
    		cin>>fd[i].s>>fd[i].b;
    	}
    	for(ll i=0;i<(1<<n);++i){//枚举0~2^n 
    		if(i==0) continue;//至少选一种食材 
    		cs=1,cb=0;
    		for(ll j=0,k=n;j<n;++j,--k){//对i进行拆位 
    			if((i>>j)&1==1){
    				cs*=fd[k].s;
    				cb+=fd[k].b;
    			}
    		}
    		ans=min(abs(cs-cb),ans);
    	}
    	cout<<ans;
    	return 0;
    }
posted @ 2026-02-16 10:55  king_steph1209  阅读(7)  评论(0)    收藏  举报