社区讨论

大佬,求调!!!

P9011 [USACO23JAN] Air Cownditioning II B参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@m3x1a2ik
此快照首次捕获于
2024/11/25 20:58
去年
此快照最后确认于
2025/11/04 13:55
4 个月前
查看原帖
CPP
#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;
}

回复

0 条回复,欢迎继续交流。

正在加载回复...