90分求助,#10TLE
  • 板块P1433 吃奶酪
  • 楼主zhibuba
  • 当前回复8
  • 已保存回复8
  • 发布时间2020/8/14 09:55
  • 上次更新2023/11/6 20:21:36
查看原帖
90分求助,#10TLE
319478
zhibuba楼主2020/8/14 09:55
#include <iostream>
#include <complex>
#include <cmath>
#include <iomanip>

using namespace std;

complex<double> A[16];
int n;
bool vis[16];
double ans = INFINITY;

void DFS(int x, double s, int cnt)
{
    if (s > ans)
        return;
    if (cnt == n)
    {
        ans = min(ans, s);
        return;
    }
    for (int i = 1; i <= n; i++)
    {
        if (!vis[i])
        {
            vis[i] = true;
            DFS(i, s + abs(A[i] - A[x]), cnt + 1);
            vis[i] = false;
        }
    }
}

int main()
{
    cin >> n;
    for (int i = 1; i <= n; i++)
    {
        double real, imag;
        cin >> real >> imag;
        A[i] = {real, imag};
    }
    DFS(0, 0, 0);
    cout << fixed << setprecision(2) << ans << flush;
    return 0;
}
2020/8/14 09:55
加载中...