1 条题解

  • 0
    @ 2024-1-10 18:37:29
    #include <bits/stdc++.h>
    using namespace std;
    int i,j,n,g,z,ans=20,Q[30],q[30],a[20][30],b[30],c[30];
    bool sht(int z){
    	for(int i=1;i<=n;i++){
    		b[i]=0;
    		for(int j=1;j<=z;j++){
    			b[i]=b[i]+a[q[j]][i];
    		}
    		if(b[i]<c[i]) return 0;
    	}	
    	return 1; 
    }
    void f(int x,int z){
    	if(sht(z)){
    		if(z<ans){
    			ans=z;
    			for(int i=1;i<=z;i++){
    				Q[i]=q[i];
    			}
    		}
    		return;
    	}
    	if(x>g) return;
    	q[z+1]=x;
    	f(x+1,z+1);
    	f(x+1,z);
    }
    int main(){
    	cin>>n;
    	for(i=1;i<=n;i++){
    		cin>>c[i];
    	}
    	cin>>g;
    	for(i=1;i<=g;i++){
    		for(j=1;j<=n;j++){
    			cin>>a[i][j];
    		}
    	}
    	f(1,0);
    	cout<<ans<<' ';
    	for(i=1;i<=ans;i++){
    		cout<<Q[i]<<' ';
    	}
    	return 0;
    }
    
    • 1

    [USACO2.1] 健康的荷斯坦奶牛 Healthy Holsteins

    信息

    ID
    675
    时间
    1000ms
    内存
    125MiB
    难度
    8
    标签
    递交数
    14
    已通过
    8
    上传者