1 条题解

  • 1
    @ 2025-1-27 15:56:57
    #include<bits/stdc++.h>
    using namespace std;
    int n,s[20],k[20];
    int ans=1000000;
    void dfs(int t,int sums,int sumk,int cnt){
    	if(t==n+1){
    		if(cnt>=1){
    			//abs(sums-sumk);
    			ans=min(ans,abs(sums-sumk));
    		}
    		return;
    	}
    		//t用 
    		dfs(t+1,sums*s[t],sumk+k[t],cnt+1);
    		//t不用 
    		dfs(t+1,sums,sumk,cnt);
    }
    int main(){
    	cin>>n;
    	for(int i=1;i<=n;i++){
    		cin>>s[i]>>k[i];
    	}
    	dfs(1,1,0,0);
    	cout<<ans;
    	return 0; 
    }
    
    • 1

    信息

    ID
    82
    时间
    1000ms
    内存
    32MiB
    难度
    5
    标签
    递交数
    2
    已通过
    1
    上传者