求助......
查看原帖
求助......
556017
molly1212楼主2024/8/4 18:20
#include <bits/stdc++.h>
using namespace std;
const int N = 25;
int n,v[N],ans = 0,pre[N];
vector<int> a[N];
bool used[N];
void dfs(int s,int w,int num)//s表示目前所在的点,w表示总地雷数
{
	for (int i = 0;i < a[s].size();i++)
	{
		if (!used[a[s][i]])
		{
			used[a[s][i]] = 1;
			dfs(a[s][i],w+v[a[s][i]],num+1);
			used[a[s][i]] = 0;
		}
	}
}
int main()
{
	cin >> n;
	for (int i = 1;i <= n;i++)
	{
		cin >> v[i];
	}
	int op;
	for (int i = 1;i < n;i++)
	{
		for (int j = i+1;j <= n;j++)
		{
			cin >> op;
			if (op == 1)
			{
				a[i].push_back(j);
				a[j].push_back(i);
			}
		}
	}
	for (int i = 1;i <= n;i++)
	{
		ans = v[i];
		memset(used,0,sizeof(used));
		used[i] = 1;
		dfs(i,v[i],1);
		used[i] = 0;
	}//路径还没写,只有结果
	cout << ans << endl;
	return 0;
}

各位能帮忙看一下为什么最大地雷数不对吗?谢谢啦。

2024/8/4 18:20
加载中...