请问一下为什么我的过不了10-13的案例,都显示TLE
  • 板块P1433 吃奶酪
  • 楼主1234xq
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/4/8 21:15
  • 上次更新2024/4/8 23:22:04
查看原帖
请问一下为什么我的过不了10-13的案例,都显示TLE
1270599
1234xq楼主2024/4/8 21:15
#include <bits/stdc++.h>

using namespace std;

const int N = 20;

int n;
double a[N], b[N], dis[1001][1001]//dis表示距离;
int vis[N];
double mina = 1e9;

void dfs(int j, int num, double ju)
{
    if (ju > mina)
    {
       return;
    }
	if (num == n)
	{
		mina = min(ju, mina);
		return;
	}
	for (int i = 1; i <= n; i++)
	{
		if(!vis[i])
		{
			vis[i] = 1;
			dfs(i, num + 1, ju + dis[j][i]);
			vis[i] = 0;	
		}
	}
}

int main()
{
	scanf("%d", &n);
	for (int i = 1; i <= n; i++)
	  scanf("%lf%lf", &a[i], &b[i]);
	  
	for (int i = 0; i <= n; i++)
	 for (int j = 0; j <= n; j++)
	  dis[i][j] = sqrt((a[i] - a[j]) * (a[i] - a[j]) + (b[i] - b[j]) * (b[i] - b[j]));
	dfs(0, 0, 0);
	printf("%.2lf", mina);
	return 0;
}
2024/4/8 21:15
加载中...