社区讨论
90分还能优化吗
P1433吃奶酪参与者 2已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @mhj30zaw
- 此快照首次捕获于
- 2025/11/03 19:54 4 个月前
- 此快照最后确认于
- 2025/11/03 19:54 4 个月前
如何把DFS优化到满分
CPP#include <bits/stdc++.h>
using namespace std;
int n;
double x[20], y[20];
bool vis[20];
double ans = 1e9;
void dfs(double xa, double xb, int count, double sum) {
if (sum >= ans) return;
if (count == n) {
ans = sum;
return;
}
for (int i = 1; i <= n; i++) {
if (!vis[i]) {
vis[i] = true;
double dist = sqrt((xa - x[i]) * (xa - x[i]) + (xb - y[i]) * (xb - y[i]));
dfs(x[i], y[i], count + 1, sum + dist);
vis[i] = false;
}
}
}
int main() {
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
scanf("%lf%lf", &x[i], &y[i]);
}
dfs(0.0, 0.0, 0, 0.0);
printf("%.2f", ans);
return 0;
}
玄关
回复
共 3 条回复,欢迎继续交流。
正在加载回复...