P2196挖地雷 佬们救一下,地雷数没问题,实在不会输出路径了
查看原帖
P2196挖地雷 佬们救一下,地雷数没问题,实在不会输出路径了
801649
SN_Tashkent楼主2023/10/18 18:30
#include<iostream>
#include<cstring>
using namespace std;
const int N=25;
int n,dj[N][N],res,ans,dl[N];
bool adj[N];
void dfs(int x)
{
	if(x>n)
	  return ; 
	res+=dl[x];
	if(res>ans)
	{
		ans=res;
	} 
	adj[x]=true;
	for(int i=1;i<=n-x;i++)
	{
		if(dj[x][i]==1)
		{
			dfs(x+i);
			res-=dl[x+i];
			adj[x+i]=false;
		}
	}
}
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>dl[i];
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n-i;j++)
		{
			cin>>dj[i][j];;
		}
	}
	for(int i=1;i<=n;i++)
	{
		dfs(i);
		res=0;
	}
	for(int i=1;i<=n;i++)
	{
		if(adj[i])
		{
			cout<<i<<" ";
		}
	}
	cout<<endl;
	cout<<ans<<endl;
	return 0;
}
2023/10/18 18:30
加载中...