只过了70分,#7,#8,#9测试数据没过,哪位大佬看看
查看原帖
只过了70分,#7,#8,#9测试数据没过,哪位大佬看看
884127
lxlgoc楼主2024/3/17 16:03

#include #include using namespace std;

int edge[50][50] = { 0 };//无向图 int vis[50] = { 0 }; int n;//景点数 int m;//路数 int ans[30] = { 0 };//各起点的最长路径 int num = 0;//单次搜索路径记录 int maxrow;//单行搜索最大路径 int k;//单行搜索最大路径下标 int t;//单次搜索起点 int exam = 0;

void dfs(int pos, int num) { for (int i = 1; i <= n; i++) { if (vis[i] == 1) exam++; } if (exam == n) { ans[t]=num; exam = 0; return; } else exam = 0; maxrow = 0; for (int i = 1; i <= n; i++) { if(vis[i]==0) maxrow = max(maxrow, edge[pos][i]); } for (int j = 1; j <= n; j++) { if (vis[j] == 0) { if (maxrow == edge[pos][j]) { vis[j] = 1; k = j; break; } } } if (maxrow == 0) { ans[t] = num; return; } dfs(k, num + maxrow); }

int main() { int x, y, lenth; cin >> n >> m; for (int i = 0; i < m; i++) { cin >> x >> y >> lenth; edge[x][y] = lenth; edge[y][x] = lenth; } for (t = 1; t <= n; t++) { vis[t] = 1; dfs(t, num); fill(vis, vis + n+1, 0); } // for (int i = 1; i <= n; i++) //{ // cout << ans[i] << " "; // } cout << *max_element(ans,ans+n+1); return 0; }```cpp

2024/3/17 16:03
加载中...