P1460迭代加深70分 TLE+WA求助
  • 板块题目总版
  • 楼主Muzzlex
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/11/17 11:32
  • 上次更新2023/11/17 15:44:26
查看原帖
P1460迭代加深70分 TLE+WA求助
464368
Muzzlex楼主2023/11/17 11:32
#include <bits/stdc++.h>
using namespace std; 
int n;
int m;
int c[500][500]; 

int b[5004];
int a[5005];
int vis[5005];
bool check()
{
	for(int i=1;i<=n;i++)
	{
		if(b[i]<a[i])return 0;
	}
	return 1;
	
}
void dfs(int dep,int t)
{ 
	if(t==dep)
	{
		if(check())
		{  
			cout<<dep<<" ";
			for(int i=1;i<=n;i++)
			{
				if(vis[i])cout<<i<< " ";
			}
			exit(0);
			
		}
		else 
		{
			return;
		}
	}
	for(int i=1;i<=m;i++)
	{
		if(vis[i])continue;
		vis[i]=1;
		for(int j=1;j<=n;j++)
		{
			b[j]+=c[i][j];
		}
		 
		 
		dfs(dep,t+1);
		
		vis[i]=0; 
		for(int j=1;j<=n;j++)
		{
			b[j]-=c[i][j];
		}
	}
}
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
		
	}
	cin>>m;
	for(int i=1;i<=m;i++)
	{
		for(int j=1;j<=n;j++)
		{
			cin>>c[i][j];
		}
	}
	for(int i=1;i<=m;i++)
	{
		memset(b,0,sizeof(b));
		dfs(i,0);
		
	}
	return 0;
}
2023/11/17 11:32
加载中...