0分求助 感谢大佬orz (调了半天,从30分到样例不过)
查看原帖
0分求助 感谢大佬orz (调了半天,从30分到样例不过)
590571
_weishiqi66_楼主2023/3/10 13:25
#include<bits/stdc++.h>
using namespace std;
int V,v[30],G,a[20][30];
int minans=30,rans[30]; 
int ans[30],s[30];
void ss(int k,int t){
	if(t>minans) return;
	int f=1;
	for(int i=1;i<=V;i++) if(s[i]<v[i]) f=0;
	if(f){
		minans=t-1;
		for(int i=1;i<=minans;i++){
			rans[i]=ans[i];
			cout<<rans[i]<<" ";
		} 
		cout<<endl;
		return;
	} 
	if(k>G) return;
	
	ss(k+1,t);//不选
	ans[t]=k;
	for(int i=1;i<=V;i++) s[i]+=a[k][i];
	ss(k+1,t+1);
	ans[t]=0;
	for(int i=1;i<=V;i++) s[i]-=a[k][i];
	
}
int main(){
	cin>>V;
	for(int i=1;i<=V;i++) cin>>v[i];
	cin>>G;
	for(int i=1;i<=G;i++){//第i种饲料第j种药的含量 
		for(int j=1;j<=V;j++) cin>>a[i][j];
	}
	ss(1,1);	
	cout<<minans<<" ";
	for(int i=1;i<=minans;i++) cout<<rans[i]<<" ";
	return 0;
} 
2023/3/10 13:25
加载中...