大佬,求调!!!
查看原帖
大佬,求调!!!
1237804
thomas1234567楼主2024/11/25 20:57
#include<bits/stdc++.h>
using namespace std;
int zx,a1[30],zc,a2[30][30],ans=20,a3[30],a4[30];
bool cz(int x)
{
	for(int i=1;i<=zx;i++){
		int he=0;
		for(int j=1;j<=x;j++){
			he+=a2[a4[j]][i];
		}
		if(he<a1[i]){
			return false;
		}
	}
	return true;
}
void dfs(int pos,int z)
{
	if(pos>zc)
	{
		if(cz(z) && z<ans)
		{
			ans=z;
			for(int i=1;i<=z;i++)
			{
				a3[i]=a4[i];
			}
		}
		return ;
	}
	a4[z+1]=pos;
	dfs(pos+1,z+1);
	dfs(pos+1,z);
}
int main()
{
	cin>>zx;
	for(int i=1;i<=zx;i++)
		cin>>a1[i];
	cin>>zc;
	for(int i=1;i<=zc;i++)
	{
		for(int j=1;j<=zx;j++)
		{
			cin>>a2[i][j];
		} 
	}
	dfs(1,0);
	cout<<ans<<" ";
	for(int i=1;i<=ans;i++){
		cout<<a3[i]<<" ";
	}
	cout<<endl;
	return 0;
}
2024/11/25 20:57
加载中...